SQL構文について、自分が覚えておけるように大雑把ですが、まとめてみました😆
SELECT文
列を検索する構文です。
列を出力する
SELECT 表示したい列 FROM テーブル名;
列に名前をつける
SELECT 表示したい列 AS つけたい名前 FROM テーブル名;
結果から重複文を省く
SELECT DISTINCT 表示したい列 FROM テーブル名;
特定の行のみを洗濯
SELECT 表示したい列 FROM テーブル名 WHERE 行の条件を指定;
※WHERE句は行に対して条件を指定します。HAVING句とは条件を指定する対象が異なります。
テーブルの行数を数える
SELECT COUNT(*) FROM テーブル名;
NULLを除外して行数を数える
SELECT COUNT(数えたい列名) FROM テーブル名;
合計を求める
SELECT SUM(列名) FROM テーブル名;
平均を求める
SELECT AVG(列名) FROM テーブル名;
最大値・最小値を求める
SELECT MAX or MIN(列名) FROM テーブル名;
重複値を除外して集約関数を使う
SELECT COUNT(DISTINCT 列名) FROM テーブル名;
テーブルをグループに切り分ける
SELECT 列名 FROM テーブル名 GROUP BY 列名;
集約した結果に条件を指定する
SELECT 列名 FROM テーブル名 GROUP BY 列名 HAVING グループに対する条件;
検索結果を並べ替える
SELECT 列名 FROM テーブル名 ORDER BY 列名 ASC or DESC;
データを登録する
INSERT INTO テーブル名 (列名) VALEUS (登録する値);
テーブルを残したままテーブル内の行を削除する
DELETE FROM テーブル名;
データを更新する
UPDATE テーブル名 SET 列名 = 式;
トランザクション
BEGIN TRANSACTION 処理 COMMIT or ROLLBACK;
ビューの作成
CREATE VIEW ビューの名前 AS SELECT文;
CASE式の書き方
CASE WHEN 条件 THEN 条件が真の時に実行する処理 ELSE 条件が偽の時に実行する処理 END;
レコードを足し合わせる
SELECT文 UNION # 重複行をそのまま表示するときはALLをつける SELECT文 ;
テーブル同士の共通部分を抜き出す
SELECT文 INTERSECT SELECT文;
テーブル同士の差を抜き出す
SELECT文 EXCEPT SELECT文;
テーブルとテーブルを結合する
SELECT文 FROM テーブル名1 INNER JOIN テーブル名2 ON 結合する列名1 = 結合する列名2
※INNER JOIN
では行数が同じ場合にしか結合ができない。そうでなく、両方のテーブルのデータを欠かすことなく結合させたい場合は、OUTER JOIN
を使います。
ランキングをつけたいとき
SELECT文 RANK () OVER (PARTITION BY ランキングをつける範囲(列名)) FROM テーブル名;