SQLの基本 — データベースに「聞く」方法
導入
データベースには膨大なデータが眠っています。そのデータを「取り出したい」「並べ替えたい」「集計したい」と思ったときに使う言葉がSQLです。英語で質問(Query)するようなイメージで操作できます。
くわしく知ろう
SQL(Structured Query Language:構造化照会言語)は、リレーショナルデータベースにデータを問い合わせたり、操作したりするための言語です。
データを取得する基本の構文は「SELECT 列名 FROM テーブル名」です。たとえば「SELECT 氏名, 年齢 FROM 社員」と書くと、社員テーブルから氏名と年齢の列を取り出せます。すべての列を取得したい場合は列名の代わりに「*」(アスタリスク)を使います。
条件を絞り込みたい場合はWHERE句を使います。「SELECT * FROM 社員 WHERE 年齢 >= 30」と書くと、年齢が30以上の社員だけが取得できます。結果を並べ替えたい場合はORDER BY句を使い、「ORDER BY 年齢 ASC(昇順)」や「DESC(降順)」と指定します。
GROUP BY句は集計に使い、「SELECT 部署, COUNT(*) FROM 社員 GROUP BY 部署」と書くと部署ごとの人数を集計できます。集計関数にはCOUNT(件数)・SUM(合計)・AVG(平均)・MAX(最大)・MIN(最小)があります。
複数のテーブルを結合するにはJOINを使います。INNER JOINは両方のテーブルに共通するデータだけを取り出し、LEFT JOINは左側のテーブルのデータをすべて保持する結合方式です。
具体例
たとえば「東京都に住む顧客の氏名と電話番号を、氏名の五十音順に一覧表示したい」場合、SQLでは「SELECT 氏名, 電話番号 FROM 顧客 WHERE 都道府県 = '東京都' ORDER BY 氏名 ASC」と記述します。SELECT・FROM・WHERE・ORDER BYの4つの句を組み合わせるだけで、試験問題の大半に対応できます。
まとめ・試験ポイント
- SELECT〜FROM〜で列とテーブルを指定してデータを取得する
- WHERE=条件絞り込み、ORDER BY=並べ替え(ASC昇順/DESC降順)
- GROUP BY=グループ化、COUNT・SUM・AVG・MAX・MIN=集計関数
- INNER JOIN=共通データのみ結合、LEFT JOIN=左テーブルを全件保持
- 試験では「SQLの出力結果」や「WHERE・GROUP BYの動作」を問う出題が多い
学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。
入門試験100問に挑戦する