用語解説
●SQLとは
データベースを操作するときに使う言語のこと.
●データベースとは
データを保管する場所のこと.
●テーブルとは
データベースのデータの保管先であり、カラムの集まりのことである.
●カラムとは
データの種類のことである.
①まずデータベースからデータを取ってくる
SELECT カラム名
FROM テーブル名;
でデータを取得することができる.すべてのカラムを取ってきたいときは'カラム名'
に*
を入れるとできる.
例
SELECT *
FROM users;
②特定の条件にあうデータだけを取得したい
SELECT カラム名
FROM テーブル名
WHERE 条件式;
例 idが1のデータだけを取ってきたい
SELECT *
FROM users
WHERE id=1;
③ある値を含むデータを取り出したい
SELECT カラム名
FROM テーブル名
WHERE カラム名 LIKE '%ある値%';
前方一致
例 パンツというデータが前方一致する値を取り出したい
SELECT *
FROM clothes
WHERE under LIKE 'パンツ%';
これによりパンツXL
というデータを取得できる
後方一致
例 パンツというデータが後方一致する値を取り出したい
SELECT *
FROM clothes
WHERE under LIKE '%パンツ';
これにより赤いパンツ
というデータを取得できる
④NULLのデータを取ってきたい
SELECT カラム名
FROM テーブル名
WHERE カラム名 IS NULL;
例
NULLでないデータを取得するには
SELECT カラム名
FROM テーブル名
WHERE カラム名 IS NOT NULL;
⑤条件式でかつ(AND)とまたは(OR)を使いたい
SELECT カラム名
FROM テーブル名
WHERE 条件式
AND(OR) 条件式;
⑥データを昇順や降順に並べたい
ORDER BYと書いて、次に降順か昇順かを書く.
SELECT カラム名
FROM テーブル名
ORDER BY カラム名 DESC(ASC);
DESC=降順(3,2,1)
ASC=昇順(1,2,3)
⑦上から何件取得するか決める
LIMITと書いて次に上から何件取得するかを書く.
SELECT カラム名
FROM テーブル名
ORDER BY カラム名 DESC
LIMIT 3;
これは降順に並んだデータの上から3つを取得する
⑧データの重複をなくすには
カラム名にDISTINCTをつけることでデータが重複をなくすことができる
SELECT DISTINCT(カラム名)
FROM テーブル名;
⑨関数
合計
SELECT SUM(カラム名)
FROM テーブル名;
平均
SELECT AVG(カラム名)
FROM テーブル名;
カウント(カラムの数を数える)
SELECT COUNT(カラム名)
FROM テーブル名;
最大値
SELECT MAX(カラム名)
FROM テーブル名;
最小値
SELECT MIN(カラム名)
FROM テーブル名;
⑩データをカラムでグループ化したい
グループ化するにはGROUP BYと書いて、次にグループ化したいカラム名を書く.
SELECT カラム名
FROM テーブル名
GROUP BY カラム名;
⑪グループ化した後に条件を付けたい(WHEREはグループ化した後は使えない!)
グループ化した後に条件を付けたいときはHAVINGを使う.(あとはWHEREと同じ)
SELECT カラム名
FROM テーブル名
GROUP BY カラム名
HAVING 条件式;
⑫カラム名に別名を定義したい
ASを書いてその次に別名を書くことでカラム名を変えることができる.
SELECT カラム名 AS "名前"
FROM テーブル名
例
SELECT users.name AS "ユーザーの名前"
FROM users
⑬テーブルを連結したい
JOINで連結したいテーブル名を書いてONで連結できるカラム名で連結する
SELECT カラム名
FROM 1テーブル名
JOIN 2テーブル名
ON 1テーブル名.1カラム名=2テーブル名.2カラム名;
例
SELECT *
FROM users
JOIN posts
ON users.id=posts.user_id;
⑭データの挿入
INSERT INTO テーブル名 (カラム名1, カラム名2, カラム名3, ...)
VALUES (値1, 値2, 値3, ...);
⑮データの編集
UPDATE テーブル名
SET カラムA = 値1, カラムB = 値2, カラムC = 値3
WHERE 条件式;
⑯データの削除
DELETE FROM テーブル名
WHERE 条件式;
まとめ
SQLは実践あるのみ!!!
progateで勉強してから,sqlabで練習するのがおすすめ