📔
PostgreSQL 基本コマンドメモ
PostgreSQL への接続
-- path は psql がある場所を指定
/Library/PostgreSQL/14/bin/psql -U postgres
データベースの作成
CREATE DATABASE <データベース名>;
データベースに接続
\c <データベース名>
テーブルの操作
テーブルの作成
CREATE TABLE <テーブル名>
(<列名1> <データ型> <この列の制約>,
<列名2> <データ型> <この列の制約>,
︙
<このテーブルの制約1>, <このテーブルの制約2>, ・・・);
テーブルの削除
DROP TABEL <テーブル名>;
テーブルに列を追加
ALTER TABLE <テーブル名> ADD COLUMN <列名>;
テーブルの列を削除
ALTER TABLE <テーブル名> DROP COLUMN <列名>;
テーブル名を変更
ALTER TABLE <現在のテーブル名> RENAME TO <新しいテーブル名>;
SELECT 文
全ての列を出力(*)
SELECT * FROM <テーブル名>;
指定した列を出力(SELECT FROM)
SELECT <列名> FROM <テーブル名>;
-- 列名を複数指定する場合
SELECT <列名1>, <列名2>, ・・・
FROM <テーブル名>;
列に別名を付けて出力(AS)
SELECT <列名> AS <別名> FROM <テーブル名>;
- 別名を日本語で付ける場合は、ダブルクォーテーション(”)で囲む
出力結果から重複行を省く(DISTINCT)
SELECT DISTINCT <列名> FROM <テーブル名>;
-- 列名を複数指定する場合
SELECT DISTINCT <列名1>, <列名2> FROM <テーブル名>;
WHERE 句
条件を指定して出力(WHERE)
SELECT <列名>, ・・・
FROM <テーブル名>
WHERE <条件式>;
NOT 演算子
SELECT <列名>, ・・・
FROM <テーブル名>
WHERE NOT <条件式>;
AND 演算子
SELECT <列名>, ・・・
FROM <テーブル名>
WHERE <条件式1>
AND <条件式2>;
OR 演算子
SELECT <列名>, ・・・
FROM <テーブル名>
WHERE <条件式1>
OR <条件式2>;
集約と並び替え
テーブルの行数を取得(COUNT)
SELECT COUNT(*) FROM <テーブル名>;
NULL を除外して行数を取得
-- 列名内の NULL の行はカウントされない
SELECT COUNT(<列名>) FROM <テーブル名>;
重複値を除いて行数を取得(DISTINCT)
SELECT COUNT(DISTINCT <列名>) FROM <テーブル名>;
合計を取得(SUM)
SELECT SUM(<列名>) FROM <テーブル名>;
-- 列名を複数指定する場合
SELECT SUM(<列名>), SUM(<列名>) FROM <テーブル名>;
平均値を取得(AVG)
SELECT AVG(<列名>) FROM <テーブル名>;
最大値を取得(MAX)
SELECT MAX(<列名>) FROM <テーブル名>;
最小値を取得(MIN)
SELECT MIN(<列名>) FROM <テーブル名>;
グループ分け(GROUP BY)
SELECT <列名1>, <列名2>, ・・・
FROM <テーブル名>
GROUP BY <列名1>, <列名2>, ・・・;
グループ分けした結果に条件指定(HAVING)
SELECT <列名1>, <列名2>, ・・・
FROM <テーブル名>
GROUP BY <列名1>, <列名2>, ・・・
HAVING <グループの結果に対する条件>;
昇順に並び替え(ORDER BY)
SELECT <列名1>, <列名2>, ・・・
FROM <テーブル名>
ORDER BY <列名1>, <列名2>, ・・・;
降順に並び替え(DESC)
SELECT <列名1>, <列名2>
FROM <テーブル名>
ORDER BY <列名1>, <列名2> DESC;
データの更新
データの登録(INSERT)
INSERT INTO <テーブル名> (列1, 列2, ・・・) VALUES (値1, 値2, ・・・);
-- 列名は省略可(テーブルの全列に対して INSERT を行う場合)
INSERT INTO <テーブル名> VALUES (値1, 値2, ・・・);
全データの削除(DELETE)
DELETE FROM <テーブル名>;
一部の行だけを削除
DELETE FROM <テーブル名>
WHERE <条件>;
データの更新(UPDATE)
UPDATE <テーブル名>
SET <列名> = <式>;
条件を指定した更新
UPDATE <テーブル名>
SET <列名> = <式>
WHERE <条件>;
トランザクション
BEGIN TRANSACTION;
/*
UPDATE や DELETE 文をここで複数行実行
*/
-- 確定の場合
COMMIT;
-- 取り消したい場合
ROLLBACK;
Discussion