接続
| コマンド | 説明 |
|---|---|
psql -U user -d dbname | PostgreSQL接続 |
mysql -u user -p dbname | MySQL接続 |
\q / exit | 接続終了 |
\c dbname | DB切り替え(PostgreSQL) |
use dbname; | DB切り替え(MySQL) |
データベース操作
| SQL | 説明 |
|---|---|
CREATE DATABASE dbname; | データベース作成 |
DROP DATABASE dbname; | データベース削除 |
\l / SHOW DATABASES; | DB一覧表示 |
\dt / SHOW TABLES; | テーブル一覧表示 |
\d table / DESCRIBE table; | テーブル構造表示 |
テーブル操作
| SQL | 説明 |
|---|---|
CREATE TABLE t (col type); | テーブル作成 |
DROP TABLE t; | テーブル削除 |
TRUNCATE TABLE t; | 全データ削除(高速) |
ALTER TABLE t ADD col type; | カラム追加 |
ALTER TABLE t DROP col; | カラム削除 |
ALTER TABLE t RENAME TO new; | テーブル名変更 |
データ型
| 型 | 説明 |
|---|---|
INTEGER / INT | 整数 |
BIGINT | 大きな整数 |
DECIMAL(p,s) | 固定小数点 |
FLOAT / REAL | 浮動小数点 |
VARCHAR(n) | 可変長文字列 |
TEXT | 長いテキスト |
BOOLEAN | 真偽値 |
DATE | 日付 |
TIMESTAMP | 日時 |
JSON / JSONB | JSONデータ |
UUID | 一意識別子 |
SELECT(データ取得)
| SQL | 説明 |
|---|---|
SELECT * FROM t; | 全カラム取得 |
SELECT col1, col2 FROM t; | 特定カラム取得 |
SELECT DISTINCT col FROM t; | 重複除去 |
SELECT * FROM t WHERE cond; | 条件指定 |
SELECT * FROM t ORDER BY col; | 並び替え |
SELECT * FROM t LIMIT 10; | 件数制限 |
SELECT * FROM t OFFSET 10; | オフセット |
WHERE 条件
| 条件 | 説明 |
|---|---|
col = 'value' | 等しい |
col != 'value' / col <> 'value' | 等しくない |
col > / < / >= / <= | 比較 |
col BETWEEN a AND b | 範囲 |
col IN ('a', 'b') | リスト内 |
col LIKE '%pattern%' | パターンマッチ |
col ILIKE '%pattern%' | 大文字小文字無視(PostgreSQL) |
col IS NULL | NULL判定 |
col IS NOT NULL | 非NULL判定 |
cond1 AND cond2 | AND条件 |
cond1 OR cond2 | OR条件 |
INSERT / UPDATE / DELETE
| SQL | 説明 |
|---|---|
INSERT INTO t (cols) VALUES (vals); | データ挿入 |
INSERT INTO t VALUES (vals); | 全カラム挿入 |
UPDATE t SET col=val WHERE cond; | データ更新 |
DELETE FROM t WHERE cond; | データ削除 |
JOIN(結合)
| SQL | 説明 |
|---|---|
INNER JOIN t2 ON t1.id = t2.id | 内部結合 |
LEFT JOIN t2 ON t1.id = t2.id | 左外部結合 |
RIGHT JOIN t2 ON t1.id = t2.id | 右外部結合 |
FULL OUTER JOIN t2 ON ... | 完全外部結合 |
CROSS JOIN t2 | 直積 |
集約関数
| 関数 | 説明 |
|---|---|
COUNT(*) | 行数カウント |
SUM(col) | 合計 |
AVG(col) | 平均 |
MIN(col) | 最小値 |
MAX(col) | 最大値 |
GROUP BY col | グループ化 |
HAVING cond | グループ条件 |
インデックス
| SQL | 説明 |
|---|---|
CREATE INDEX idx ON t(col); | インデックス作成 |
CREATE UNIQUE INDEX idx ON t(col); | ユニークインデックス |
DROP INDEX idx; | インデックス削除 |
\di / SHOW INDEX FROM t; | インデックス一覧 |
トランザクション
| SQL | 説明 |
|---|---|
BEGIN; / START TRANSACTION; | トランザクション開始 |
COMMIT; | コミット |
ROLLBACK; | ロールバック |
SAVEPOINT name; | セーブポイント作成 |
ROLLBACK TO name; | セーブポイントまで戻る |
ユーティリティ
| コマンド | 説明 |
|---|---|
EXPLAIN query; | 実行計画表示 |
EXPLAIN ANALYZE query; | 実行計画と実行時間 |
VACUUM; | 不要領域回収(PostgreSQL) |
ANALYZE t; | 統計情報更新 |
\timing | 実行時間表示(PostgreSQL) |