Webアプリの裏側では、ほぼ必ずデータベースが動いています。その操作言語がSQL。中でも最もよく使うのがデータを取り出す SELECT文です。まずはここを押さえれば、DB操作の入り口はクリアです。
SQL はデータベースを操作する言語です。中でも SELECT は「保存されたデータを取り出す」命令で、使用頻度は圧倒的。ここではusersテーブル(id, name, age, city)を例に進めます。
SELECT * FROM users;
* は「全ての列」の意味。特定の列だけ欲しいなら列名を並べます。
SELECT name, age FROM users;
SELECT * FROM users WHERE age >= 20;
SELECT * FROM users WHERE city = 'Tokyo';
複数条件は AND / OR でつなげます。
SELECT * FROM users WHERE age >= 20 AND city = 'Tokyo';
%は任意の文字列を表すワイルドカードです。
SELECT * FROM users WHERE name LIKE '田%'; -- 「田」で始まる
SELECT * FROM users ORDER BY age; -- 昇順(小さい順)
SELECT * FROM users ORDER BY age DESC; -- 降順(大きい順)
SELECT * FROM users ORDER BY age DESC LIMIT 3; -- 年齢上位3件
SELECT COUNT(*) FROM users; -- 件数
SELECT AVG(age) FROM users; -- 平均年齢
SELECT city, COUNT(*) FROM users GROUP BY city; -- 都市ごとの人数
GROUP BY は「グループごとに集計」する指定で、ランキングや集計レポートの基礎になります。
SELECT 列 FROM テーブル WHERE 条件 ORDER BY 並び順 LIMIT 件数——この形が SELECT の骨格です。まずは手元のデータでWHEREとORDER BYを組み合わせて、思い通りにデータを取り出す感覚をつかみましょう。