SQLの基本構文その1


個人的にSQLの操作にもなれたいと思い、まずはSQLの基本的な操作についてまとめた。

仮に以下のテーブルがあったとし、

テーブル名はjojoとする。

全テーブルを取得する

SELECT (カラム名) FROM (テーブル名);

nameカラムを取り出したいときは、

SELECT name FROM jojo;

nameカラムとpartカラムを取り出したいときは、

SELECT name, part FROM jojo;

全カラムを取り出したいときは、

SELECT * FROM jojo;

テーブルから特定のデータを取り出したいとき

SELECT (カラム名) FROM (テーブル名) WHERE (条件);

partが3のものだけ取り出したいとき

SELECT * FROM jojo WHERE part = 1;

(注意)jsなどの比較演算子のように「===」とは書かない。

part_nameがファントム・ブラッドのものだけ取り出したいとき

SELECT * FROM jojo WHERE part_name = 'ファントム・ブラッド';

ワイルドカード

テキストデータの特定のカラムを取得したい場合に、文言中に特定の文言があったときとかに

'%(指定したい文字)%'

のように%で指定したい文字をを挟む。
この%は前後どちらかに着けることも可能。

'アイス%'→「アイス」で始まる文言のカラムデータ
'%アイス'→「アイス」で終わる文言のカラムデータ

ageが20未満で、nameに「空条」とつくものだけ取り出したいとき

SELECT * FROM jojo WHERE age < 20 LIKE '%空条%';

ageが20未満で、nameが「空条」から始まるものだけ取り出したいとき

SELECT * FROM jojo WHERE age < 20 LIKE '空条%';

partが7以下で、nameが「ジョースター」で終わるものだけ取り出したいとき

SELECT * FROM jojo WHERE part <= 7 LIKE '%ジョースター';

条件を複数つけたいとき

・nameが「ジョースター」で終わる
・ageが20未満
これら2つの条件を満たすカラムを取り出したいとき

SELECT * FROM jojo WHERE LIKE '%ジョースター' AND age < 20;

どちらかでいい場合は、

SELECT * FROM jojo WHERE LIKE '%ジョースター' OR age < 20;

何も入っていない値を取得したいとき

今回はageに何も入っていないカラムがあるので、これを取得したいとき、

SELECT * FROM jojo WHERE age IS NULL;

逆に、ageがNULLじゃないカラムを取り出したいとき、

SELECT * FROM jojo WHERE age IS NOT NULL;

取り出したデータを並べ替えたい場合

ageが大きい順に並べたいとき、

SELECT * FROM jojo ORDER BY age ASC;

ageが小さい順に並べたいとき、

SELECT * FROM jojo ORDER BY age DESC;

ちなみに

ASC→ASCEND(上昇する、昇る)
DESC→DESCEND(加工する、下る)

という英単語の頭文字。

取得するデータの上限を設けたいとき

ageが20未満で、5こだけデータを取り出したいとき、

SELECT * FROM jojo WHERE age < 20 LIMIT 5;