このSQLチートシートは、最も一般的に使用されるSQL文をまとめたものです。SQLチートシートは以下の方法でダウンロードできます。

テーブルからのデータのクエリ
テーブルから列c1、c2のデータをクエリする
SELECT c1, c2 FROM t;
Code language: SQL (Structured Query Language) (sql)
テーブルからすべての行と列をクエリする
SELECT * FROM t;
Code language: SQL (Structured Query Language) (sql)
データをクエリし、条件で行をフィルタリングする
SELECT c1, c2 FROM t
WHERE condition;
Code language: SQL (Structured Query Language) (sql)
テーブルから重複しない行をクエリする
SELECT DISTINCT c1 FROM t
WHERE condition;
Code language: SQL (Structured Query Language) (sql)
結果セットを昇順または降順にソートする
SELECT c1, c2 FROM t
ORDER BY c1 ASC [DESC];
Code language: SQL (Structured Query Language) (sql)
offset個の行をスキップし、次のn個の行を返す
SELECT c1, c2 FROM t
ORDER BY c1
LIMIT n OFFSET offset;
Code language: SQL (Structured Query Language) (sql)
集計関数を使用して行をグループ化する
SELECT c1, aggregate(c2)
FROM t
GROUP BY c1;
Code language: SQL (Structured Query Language) (sql)
HAVING句を使用してグループをフィルタリングする
SELECT c1, aggregate(c2)
FROM t
GROUP BY c1
HAVING condition;
Code language: SQL (Structured Query Language) (sql)
複数のテーブルからのクエリ
t1とt2の内結合
SELECT c1, c2
FROM t1
INNER JOIN t2 ON condition;
Code language: SQL (Structured Query Language) (sql)
t1とt1の左結合
SELECT c1, c2
FROM t1
LEFT JOIN t2 ON condition;
Code language: SQL (Structured Query Language) (sql)
t1とt2の右結合
SELECT c1, c2
FROM t1
RIGHT JOIN t2 ON condition;
Code language: SQL (Structured Query Language) (sql)
完全外部結合を実行する
SELECT c1, c2
FROM t1
FULL OUTER JOIN t2 ON condition;
Code language: SQL (Structured Query Language) (sql)
テーブルの行のデカルト積を作成する
SELECT c1, c2
FROM t1
CROSS JOIN t2;
Code language: SQL (Structured Query Language) (sql)
クロス結合を実行する別の方法
SELECT c1, c2
FROM t1, t2;
Code language: SQL (Structured Query Language) (sql)
INNER JOIN句を使用してt1自身を結合する
SELECT c1, c2
FROM t1 A
INNER JOIN t1 B ON condition;
Code language: SQL (Structured Query Language) (sql)
SQL演算子の使用
2つのクエリから行を結合する
SELECT c1, c2 FROM t1
UNION [ALL]
SELECT c1, c2 FROM t2;
Code language: SQL (Structured Query Language) (sql)
2つのクエリの共通部分(積集合)を返す
SELECT c1, c2 FROM t1
INTERSECT
SELECT c1, c2 FROM t2;
Code language: SQL (Structured Query Language) (sql)
ある結果セットから別の結果セットを減算する
SELECT c1, c2 FROM t1
MINUS
SELECT c1, c2 FROM t2;
Code language: SQL (Structured Query Language) (sql)
パターンマッチング%、_を使用して行をクエリする
SELECT c1, c2 FROM t1
WHERE c1 [NOT] LIKE pattern;
Code language: SQL (Structured Query Language) (sql)
リスト内の行をクエリする
SELECT c1, c2 FROM t
WHERE c1 [NOT] IN value_list;
Code language: SQL (Structured Query Language) (sql)
2つの値の間の行をクエリする
SELECT c1, c2 FROM t
WHERE c1 BETWEEN low AND high;
Code language: SQL (Structured Query Language) (sql)
テーブルの値がNULLかどうかを確認する
SELECT c1, c2 FROM t
WHERE c1 IS [NOT] NULL;
Code language: SQL (Structured Query Language) (sql)
テーブルの管理
3つの列を持つ新しいテーブルを作成する
CREATE TABLE t (
id INT PRIMARY KEY,
name VARCHAR NOT NULL,
price INT DEFAULT 0
);
Code language: SQL (Structured Query Language) (sql)
データベースからテーブルを削除する
DROP TABLE t ;
Code language: SQL (Structured Query Language) (sql)
テーブルに新しい列を追加する
ALTER TABLE t ADD column;
Code language: SQL (Structured Query Language) (sql)
テーブルから列cを削除する
ALTER TABLE t DROP COLUMN c ;
Code language: SQL (Structured Query Language) (sql)
制約を追加する
ALTER TABLE t ADD constraint;
Code language: SQL (Structured Query Language) (sql)
制約を削除する
ALTER TABLE t DROP constraint;
Code language: SQL (Structured Query Language) (sql)
テーブルの名前をt1からt2に変更する
ALTER TABLE t1 RENAME TO t2;
Code language: SQL (Structured Query Language) (sql)
列c1の名前をc2に変更する
ALTER TABLE t1 RENAME c1 TO c2 ;
Code language: SQL (Structured Query Language) (sql)
テーブル内のすべてのデータを削除する
TRUNCATE TABLE t;
Code language: SQL (Structured Query Language) (sql)
SQL制約の使用
c1とc2を主キーとして設定する
CREATE TABLE t(
c1 INT, c2 INT, c3 VARCHAR,
PRIMARY KEY (c1,c2)
);
Code language: SQL (Structured Query Language) (sql)
c2列を外来キーとして設定する
CREATE TABLE t1(
c1 INT PRIMARY KEY,
c2 INT,
FOREIGN KEY (c2) REFERENCES t2(c2)
);
Code language: SQL (Structured Query Language) (sql)
c1とc2の値を一意にする
CREATE TABLE t(
c1 INT, c1 INT,
UNIQUE(c2,c3)
);
Code language: SQL (Structured Query Language) (sql)
c1 > 0 かつ c1 >= c2 とする
CREATE TABLE t(
c1 INT, c2 INT,
CHECK(c1> 0 AND c1 >= c2)
);
Code language: SQL (Structured Query Language) (sql)
c2列の値をNULL以外にする
CREATE TABLE t(
c1 INT PRIMARY KEY,
c2 VARCHAR NOT NULL
);
Code language: SQL (Structured Query Language) (sql)
データの変更
テーブルに1行挿入する
INSERT INTO t(column_list)
VALUES(value_list);
Code language: SQL (Structured Query Language) (sql)
テーブルに複数の行を挿入する
INSERT INTO t(column_list)
VALUES (value_list),
(value_list), …;
Code language: SQL (Structured Query Language) (sql)
t2からt1に行を挿入する
INSERT INTO t1(column_list)
SELECT column_list
FROM t2;
Code language: SQL (Structured Query Language) (sql)
すべての行の列c1に新しい値を更新する
UPDATE t
SET c1 = new_value;
Code language: SQL (Structured Query Language) (sql)
条件に一致する列c1、c2の値を更新する
UPDATE t
SET c1 = new_value,
c2 = new_value
WHERE condition;
Code language: SQL (Structured Query Language) (sql)
テーブル内のすべてのデータを削除する
DELETE FROM t;
Code language: SQL (Structured Query Language) (sql)
テーブル内の行のサブセットを削除する
DELETE FROM t
WHERE condition;
Code language: SQL (Structured Query Language) (sql)
ビューの管理
c1とc2からなる新しいビューを作成する
CREATE VIEW v(c1,c2)
AS
SELECT c1, c2
FROM t;
Code language: SQL (Structured Query Language) (sql)
チェックオプション付きの新しいビューを作成する
CREATE VIEW v(c1,c2)
AS
SELECT c1, c2
FROM t;
WITH [CASCADED | LOCAL] CHECK OPTION;
Code language: SQL (Structured Query Language) (sql)
再帰ビューを作成する
CREATE RECURSIVE VIEW v
AS
select-statement -- anchor part
UNION [ALL]
select-statement; -- recursive part
Code language: SQL (Structured Query Language) (sql)
一時ビューを作成する
CREATE TEMPORARY VIEW v
AS
SELECT c1, c2
FROM t;
Code language: SQL (Structured Query Language) (sql)
ビューを削除する
DROP VIEW view_name;
Code language: SQL (Structured Query Language) (sql)
インデックスの管理
テーブルtのc1とc2にインデックスを作成する
CREATE INDEX idx_name
ON t(c1,c2);
Code language: SQL (Structured Query Language) (sql)
テーブルtのc3、c4に一意インデックスを作成する
CREATE UNIQUE INDEX idx_name
ON t(c3,c4)
Code language: SQL (Structured Query Language) (sql)
インデックスを削除する
DROP INDEX idx_name;
Code language: SQL (Structured Query Language) (sql)
トリガーの管理
トリガーを作成または変更する
CREATE OR MODIFY TRIGGER trigger_name
WHEN EVENT
ON table_name TRIGGER_TYPE
EXECUTE stored_procedure;
Code language: SQL (Structured Query Language) (sql)
WHEN
- BEFORE – イベント発生前に呼び出す
- AFTER – イベント発生後に呼び出す
イベント
- INSERT – INSERTに対して呼び出す
- UPDATE – UPDATEに対して呼び出す
- DELETE – DELETEに対して呼び出す
トリガータイプ
- FOR EACH ROW
- FOR EACH STATEMENT
特定のトリガーを削除する
DROP TRIGGER trigger_name;
Code language: SQL (Structured Query Language) (sql)