LoginSignup
0
0

More than 3 years have passed since last update.

SQLの基本構文その1

Posted at

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

仮に以下のテーブルがあったとし、
スクリーンショット 2021-03-12 20.52.55.png

テーブル名は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;
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0