SQLの主要コマンドの備忘録です。
データの取得
SELECT カラム名, カラム名,... FROM テーブル名
上記のように、データを取得するためにはSELECTを用います。SELECTを用いて、どのカラムのデータを取得するかを選びます。また、複数のカラムを取得する時は、カンマ区切りでカラム名を続けます。
そして、FROMを用いて、SELECTで選んだカラムがどのテーブルのカラムかを指定してあげます。
SELECT *
SELECT * とすることで、FROMで指定したテーブルの全てのカラムを取得できます。
SELECT DISTINCT カラム名
SELECTの後にDISTINCTを書くことで、検索結果から重複するデータを省くことが出来ます。
SELECT 四則演算 SELECT SUM(カラム名) #合計 SELECT AVG(カラム名) #平均 SELECT COUNT(カラム名) #データ数 SELECT MAX(カラム名) #最大値 SELECT MIN(カラム名) #最小値
上のようにSELECTでは四則演算やSUM、AVGなどの関数などを指定して、データを取得することが出来ます。
SELECT カラム名 AS "〇〇"
SELECTの後に、ASをつけることで、カラム名を〇〇に変換して、表示してくれます。
条件をつける
WHERE カラム名 条件 WHERE NOT カラム名 条件
WHEREを用いることで、取得するデータに条件をつけることができます。どのレコードを取得するかを決めれます。また、WHEREの後にNOTをつけることで後に記述する条件を満たさないデータを取得できます。
WHERE カラム名 LIKE "%〇〇%" WHERE カラム名 LIKE "%〇〇" WHERE カラム名 LIKE "〇〇%"
WHEREの条件の部分にLIKEを用いると、指定したカラムが〇〇を含むレコードという条件となります。また、%はワイルドカードといい、どんな文字列にも一致することを指す記号です。1行目は、〇〇を含むレコード、2行目は〇〇が最後につくレコード、3行目は〇〇が最初につくレコードを表しています。
ORDER BY カラム名 並べ方
ORDER BYで並べ方を指定できます。並べ方の場所に、ASCを書くと昇順(例:1→100)、DESCを書くと降順(例:100→1)のように並びます。
LIMIT 件数;
LIMITで取得する件数を指定できます。件数の場所に数字を入れることでその数分のデータを取得できます。LIMITはクエリの末尾に記述します。
グループ化
上の写真の左のようなテーブルの時、下のコマンドを実行すると、上の写真の右のようにprefectureテーブルでグループ分けされます。
SELECT * FROM users GROUP BY prefecture
また、グループ分けした後に条件を付けたい時は、下のようにWHEREではなく、HAVINGを使用します。
GROUP BY カラム名, カラム名, ... HAVING 条件
テーブルの結合
上のような、usersテーブルとpostsテーブルがあったとき、usersテーブルとpostsテーブルを紐付けるには下のコマンドを実行します。ONの後の記述で、主キーと外部キーを紐付けて結合しています。
SELECT * FROM posts JOIN users ON posts.user_id = users.id
データの操作
レコードの挿入
INSERT INTO テーブル名(カラム名,カラム名,...) VALUES (値,値,...);
レコードの更新
UPDATE テーブル名 SET カラム名=〇〇, カラム名=〇〇, ... WHERE 条件;
WHEREでidなどの条件を指定してあげないと、全てのレコードが更新されてしまいます。
レコードの削除
DELETE FROM テーブル名 WHERE 条件;
WHEREでidなどの条件を指定してあげないと、UPDATE同様、全てのレコードが削除されてしまいます。