SQLコード
もくじ
SELECT FROM
テーブルから情報を取り出す
SELECT <カラム名>
FROM <テーブル名>;
テーブルの全情報を取り出す
SELECT *
FROM <テーブル名>;
テーブルのあるカラムの重複がない情報のみを取り出す
SELECT DISTINCT user_id
FROM <テーブル名>;
テーブルのあるカラムを除外して情報を取り出す
SELECT * EXCEPT(<カラム名>, <カラム名>・・・)
FROM <テーブル名>;
ORDER BY
昇順に並べ替える
SELECT <カラム名>
FROM <テーブル名>
ORDER BY <カラム名> ASC;
降順に並べ替える
SELECT <カラム名>
FROM <テーブル名>
ORDER BY <カラム名> DESC;
複数のカラムで並べ替える
SELECT <カラム名>
FROM <テーブル名>
ORDER BY <優先順位1カラム> ASC, <優先順位2カラム> DESC, <優先順位3カラム> DESC;
複数のカラムで並べ替える(列の順番でカラムを指定する)
SELECT <カラム名>
FROM <テーブル名>
ORDER BY 3 ASC, 1 DESC, 2 DESC;
LIMIT OFFSET
取得する行数を指定する
SELECT <カラム名>
FROM <テーブル名>
limit <指定したい数>
上から指定する行をずらして、行数を指定して表示する。
SELECT <カラム名>
FROM <テーブル名>
limit <指定したい数>
OFFSET <ずらしたい数>
※ ORDER BYと合わせることが多い!
WHERE、BETWEEN-AND、IN、LIKE
条件に合致する行を取得する。
例:あるカラムのデータが3以上の行を取得する
SELECT <カラム名>
FROM <テーブル名>
WHERE <カラム名> >= 3;
例:あるカラムのデータが3以上10以下の行を取得する。
SELECT <カラム名>
FROM <テーブル名>
WHERE <カラム名> BETWEEN 3 AND 10;
例:あるカラムのデータが複数の数値と一致する行のみ取得する。
SELECT <カラム名>
FROM <テーブル名>
WHERE <カラム名> IN (3,10,20);
例:あるカラムのデータが特定の文字と一致する行を取得する。
SELECT <カラム名>
FROM <テーブル名>
WHERE <カラム名> = '一致したい文字';
※ 文字の場合は、シングルクォテーションで囲むこと。
例:あるカラムのデータが魚、魚君の行を取得する。
SELECT <カラム名>
FROM <テーブル名>
WHERE <カラム名> in ('魚', '魚君');
例:あるカラムのデータが魚で終わらない行を取得する。
SELECT <カラム名>
FROM <テーブル名>
WHERE <カラム名> NOT LIKE ('%魚');
※ LIKEを使えば、正規表現を使用できる。
- %
- _ 任意の一文字
- *
例:あるカラムのデータが2020年1月1日より前のレコードをを取得する
SELECT <カラム名>
FROM <テーブル名>
WHERE <カラム名> < "2020-01-01";
例:あるカラムのデータが2020年1月1日から2020年6月1日の間を除くレコードを取得する。
SELECT <カラム名>
FROM <テーブル名>
WHERE <カラム名> NOT BETWEEN 2020-01-01 AND 2020-06-01;
例:あるカラムのデータがFalseの行のみを取得する。
SELECT <カラム名>
FROM <テーブル名>
WHERE <カラム名> is False;
例:あるカラムAのデータが男であり、カラムBのデータが25以下である、もしくはカラムCの値が2の行を取得する
SELECT <カラム名>
FROM <テーブル名>
WHERE (カラムA="男" AND カラムB<25) OR カラムC=2;
例:あるカラムのデータが空白の行を取得する
SELECT <カラム名>
FROM <テーブル名>
WHERE <カラム名> is null;
AS
エラーにならないパターン
SELECT <カラム名> AS <変更したい名前>
FROM <テーブル名>
SELECT <カラム名> AS <変更したい名前>
FROM <テーブル名>
ORDER BY <変更したい名前> DESC
LIMIT 5;
エラーになるパターン
SELECT <カラム名> AS <変更したい名前>
FROM <テーブル名>
WHERE <変更したい名前> <= 10000;
※ WHEREにはASで適用した名前が使えないので注意!!!1
データの集計(count)
条件に応じた行数を取得する場合
SELECT COUNT(<カラム名>) as <つけたい名前>
FROM <テーブル名>
WHERE <カラム名1>=2
AND <カラム名2> >="1989-01-08";
複数のカウントを取ってくる、条件以外の行数を取得する場合
SELECT COUNT(<カラム名>) as <つけたい名前>, COUNT(<カラム名>) as <つけたい名前>, COUNT(<カラム名>) as <つけたい名前>
FROM <テーブル名>
WHERE <カラム名1>=2
AND <カラム名2> >="1989-01-08";
ORDER BY
グループ化の処理
例:あるカテゴリデータが入っているカラムをグループ化し、カテゴリデータごとに出現数を集計する。
SELECT <グループ化したいカラム名>, count(*) as <カウント結果のカラム名>
FROM <テーブル名>
GORUP BY <グループ化したいカラム名>
注意:GROUP BYを利用する場合は、必ずSELECT文の後に、グループ化したカラム名を入れる必要はある。
例:上記の例でカラム名ではなく、カラムの列番号で表現した場合
SELECT <カラムの列番号>, count(*) as <カウント結果のカラム名>
FROM <テーブル名>
GORUP BY <グループ化したいカラムの列番号>
例:複数のカラムのグループ化し、出現数を集計する。