SQLの主要コマンドと使い方

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同様、全てのレコードが削除されてしまいます。