SQL チートシート

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

3ページのSQLチートシートをPDF形式でダウンロード

SQL Cheet Sheet 1

SQL Cheat Sheet 2 SQL Cheat Sheet 3

テーブルからのデータのクエリ

テーブルから列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)