今回は、基本情報技術者試験のデータベースに関する過去問を取り上げて解説します。データベースの知識はITシステムで広く利用されるため、基本をしっかり押さえておくことが重要です。今回は特にSQLに関連する問題に挑戦してみましょう!
問題
「次のSQL文を実行した結果、表示される従業員数はどれか?」
SELECT COUNT(*)
FROM employee
WHERE department = 'Sales' AND salary > 500000;
表 employee には次のようなデータが含まれています:
| id | name | department | salary |
|---|---|---|---|
| 1 | 田中 | Sales | 550000 |
| 2 | 佐藤 | Marketing | 480000 |
| 3 | 鈴木 | Sales | 520000 |
| 4 | 高橋 | Sales | 450000 |
| 5 | 伊藤 | HR | 600000 |
- ア 1
- イ 2
- ウ 3
- エ 4
SQLの基礎知識
まず、SQLはデータベースを操作するための言語であり、データの検索、追加、更新、削除を行う際に使います。この問題では、SELECT文を使用して、条件に合致するデータの数をカウントしています。
SELECT COUNT(*)
FROM employee
WHERE department = 'Sales' AND salary > 500000;
このSQL文のポイントは、COUNT(*) という集計関数です。この関数は、指定した条件に合致するレコードの数を数えます。さらに、WHERE 句で条件を指定しています。今回の条件は、以下の2つです。
department = 'Sales'→ 部門が「Sales(営業)」であることsalary > 500000→ 給与が50万円より多いこと
各行をチェック!
では、この条件に基づいて、employee テーブルのデータを1行ずつ確認していきます。
| id | name | department | salary |
|---|---|---|---|
| 1 | 田中 | Sales | 550000 |
- 部門が「Sales」、給与が50万円を超えているので、この行は条件に合致します。
| 2 | 佐藤 | Marketing | 480000 |
- 部門が「Marketing」であるため、条件に合致しません。
| 3 | 鈴木 | Sales | 520000 |
- 部門が「Sales」、給与が50万円を超えているので、この行も条件に合致します。
| 4 | 高橋 | Sales | 450000 |
- 部門が「Sales」ですが、給与が50万円以下なので条件に合致しません。
| 5 | 伊藤 | HR | 600000 |
- 部門が「HR」であるため、条件に合致しません。
正解
以上の確認から、条件に合致するレコードは田中さんと鈴木さんの2人だけです。したがって、正解は イ:2 です!
SQL文の仕組みを解説
- SELECT COUNT(*):
COUNT(*)はレコードの数を数える関数です。*は全ての列を対象とすることを示しており、レコードの数をそのままカウントします。 - FROM employee:
employeeテーブルからデータを取得します。 - WHERE: この句では条件を指定します。今回は「部門がSalesであり、かつ給与が50万円を超える」レコードを対象にしています。
データベースとSQLの重要性
データベースは現代のITシステムにおいて非常に重要な役割を果たしています。例えば、企業の顧客情報や売上データ、在庫管理など、様々なデータがデータベースに蓄積されます。SQLを理解することで、効率よくデータを操作し、必要な情報を迅速に取得できるようになります。
まとめ
今回の問題では、SQLのCOUNT関数とWHERE句を用いた条件検索について解説しました。正解は イ:2 でした。SQLの基本をしっかりマスターして、試験でも自信を持って解答できるようにしましょう!次回は別のデータベース関連の問題にも挑戦してみましょう!

コメント