テクノロジ系

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問に挑戦する