こんにちは!今回は、データベースの基本である SELECT文 をステップごとに解説します。
Excelで「並べ替え」や「集計」をしたことがある人は、そのイメージで読むと分かりやすいですよ😊
この記事で分かること(目次)
1. SELECT文の基本形
データベースから欲しい情報を取り出すときの基本はこれです。
SELECT 列名
FROM テーブル名;
たとえば「成績テーブル」から「名前」と「点数」を取り出すなら:
SELECT 名前, 点数
FROM 成績;
2. WHEREで条件をつける(絞り込み)
「数学の点数が70点以上の人だけ」みたいに条件をつけたいときは WHERE句 を使います。
SELECT 名前, 点数
FROM 成績
WHERE 点数 >= 70;
👉 Excelの「フィルタ機能」に近いイメージです。
3. GROUP BYでグループ分け
「学年ごとに平均点を出したい」ときなどは GROUP BY句 を使います。
SELECT 学年, AVG(点数) AS 平均点
FROM 成績
GROUP BY 学年;
👉 ピボットテーブルみたいに、集計をするときに活躍します。
4. HAVINGでグループに条件をつける
「学年ごとの平均点が80点以上の学年だけ知りたい」ときは HAVING句 を使います。
SELECT 学年, AVG(点数) AS 平均点
FROM 成績
GROUP BY 学年
HAVING AVG(点数) >= 80;
👉 WHEREは「個人」に対する条件、HAVINGは「グループ」に対する条件、という違いがあります。
5. ORDER BYで並べ替え
最後に、結果を 並べ替える のが ORDER BY句 です。
SELECT 名前, 点数
FROM 成績
ORDER BY 点数 DESC;
👉 点数の高い順に表示されます。
昇順(小さい順)は ASC、降順(大きい順)は DESC。
🔹 ORDER BY の基本
- 書き方:
SELECT 列名 FROM テーブル名 ORDER BY 列名 [ASC|DESC]; ASC(Ascending)=昇順(小さい値 → 大きい値、古い日付 → 新しい日付)DESC(Descending)=降順(大きい値 → 小さい値、新しい日付 → 古い日付)ASCは省略可能です。
6. まとめて書くとこうなる!
実際には、これらを組み合わせて使うことが多いです。
例:
「数学の点数が50点以上の人を対象に、学年ごとに平均点を出して、平均点が70点以上の学年だけを、平均点の高い順に表示する」
SELECT 学年, AVG(点数) AS 平均点
FROM 成績
WHERE 点数 >= 50
GROUP BY 学年
HAVING AVG(点数) >= 70
ORDER BY 平均点 DESC;
まとめ
- WHERE:データを絞り込む
- GROUP BY:グループごとに集計する
- HAVING:グループに条件をつける
- ORDER BY:結果を並べ替える
この4つを押さえると、SELECT文の9割は理解できたといっても過言ではありません!🎉
