目次
- ここで学ぶこと
- 内容
- SELECT文の基本構文
- 列名の別名(AS句)
- 並び替え(ORDER BY)
- 重複除去(DISTINCT)
- 取得件数の制限(LIMIT)
- SQLの実行順序
- まとめ
ここで学ぶこと
-
SELECT文の基本構文を理解し、テーブルからデータを取得できるようになる - 並び替えや重複除去など、よく使うオプションを使いこなせるようになる
- 実行順序を理解して、正確なクエリを書けるようになる
内容
1. SELECT文の基本構文
SELECT 文は、テーブルからデータを取得するための最も基本的なSQL文です。
基本構文
SELECT カラム名1, カラム名2, ...
FROM テーブル名;
例:社員テーブルの全データを取得
SELECT * FROM employees;
-
*は「すべてのカラム」を意味します。 -
特定の列だけ取得したい場合:
SELECT name, hire_date FROM employees;
ポイント:カラム名を明示的に指定するほうが、後のメンテナンス性が高まります。
2. 列名の別名(AS句)
列名が長い、または分かりにくい場合は AS 句で別名(エイリアス)を付けられます。
SELECT
name AS 氏名,
salary AS 給与
FROM
employees;
-
SQL上では
ASは省略可能です:SELECT name 氏名 FROM employees; -
別名にスペースを含む場合はダブルクォーテーションで囲みます:
SELECT department_id AS "部署 ID" FROM employees;
3. 並び替え(ORDER BY)
データを昇順または降順に並べ替えるには ORDER BY を使います。
SELECT * FROM employees ORDER BY salary DESC;
-
ASC:昇順(デフォルト) -
DESC:降順
複数条件で並び替えることもできます:
SELECT * FROM employees ORDER BY department_id ASC, salary DESC;
ポイント:ORDER BY は結果セットに対して適用されるため、処理の最後に実行されます。
4. 重複除去(DISTINCT)
重複したデータを除外して取得したい場合は DISTINCT を使います。
SELECT DISTINCT department_id FROM employees;
これにより、同じ部署IDが複数あっても1つだけ表示されます。
注意:複数カラムを指定すると、カラムの組み合わせで重複判定されます。
5. 取得件数の制限(LIMIT)
結果の件数を制限する場合は LIMIT を使用します。
SELECT * FROM employees LIMIT 5;
- 上位5件を取得する。
-
ORDER BYと組み合わせて「上位n件」を取り出すのが一般的です。
例:給与が高い上位3名を取得
SELECT name, salary FROM employees
ORDER BY salary DESC
LIMIT 3;
6. SQLの実行順序
SQLは上から順に実行されるわけではありません。内部的には次の順で処理されます:
| 実行順 | 句 | 役割 |
|---|---|---|
| 1 | FROM | どのテーブルを使うかを決定 |
| 2 | WHERE | 条件で絞り込み |
| 3 | GROUP BY | グループ化(第5章で解説) |
| 4 | HAVING | グループ後の条件指定 |
| 5 | SELECT | 取得する列を決定 |
| 6 | ORDER BY | 並び替え |
| 7 | LIMIT | 件数制限 |
ポイント:この順序を理解しておくと、複雑なクエリも正しく動かせます。
まとめ
-
SELECT はデータ取得の基本。
FROMと組み合わせて使う。 - ORDER BY で並び順を制御し、DISTINCT で重複を排除できる。
- LIMIT を使えば、結果をコンパクトに確認できる。
- SQLの実行順序を理解することで、エラーや誤動作を防げる。