PostgreSQL SQL(更新中) - user000422/0 GitHub Wiki

パス

Postgresql8 /usr/local/pgsql/bin

SELECT

-- 上限 LIMIT(上限レコード数)、OFFSET(開始レコード)
SELECT * FROM sample_table LIMIT 100 OFFSET 0;

-- 重複除去
SELECT DISTINCT ON(samplecol) * FROM sample_table;

ALTER

-- カラムを追加(末尾)
ALTER TABLE sample_table
  ADD COLUMN sample_colum VARCHAR(10);

-- カラムの制約を変更(主キー)
ALTER TABLE sample_table
  ADD CONSTRANT sample_pkey PRIMARY KEY(sample_colum);

-- カラムの制約を変更(NOT NULL)
ALTER TABLE sample_table
  ALTER COLUMN sample_colum SET NOT NULL;

-- カラムの削除
ALTER TABLE sample_table
  DROP COLUMN sample_colum;

psql

# ログイン -h(ホスト)、-p(ポート)、-U(ユーザ名)、-d(DB名)
psql -U postgres -d sample_db;
psql -h 000.000.000.000 -p 5432 -U postgres -d sample_db;

\l # DB一覧表示
\dx # 拡張機能確認
\dC # CAST定義確認
\q # psql終了

# ファイル出力
-a # -a 改行なし
-f , # -f 区切り文字指定
\i sampleDir/sample.sql # ファイル実行
# テーブル定義を確認
\d sample_table
# COPY 絶対パスしか許容しない
# テーブルのデータをcsv形式で出力
COPY sample_table TO '/tmp/sample.csv' WITH CSV DELIMITER ',' HEADER;

# SELECT結果をcsv形式で出力
COPY (SELECT * FROM sample_table) TO '/tmp/sample.csv' WITH CSV DELIMITER ',' HEADER;

CAST

CAST(型変換)INSERT時などに型変換

ロール

-- ロール確認
SELECT * FROM pg_roles;

-- テーブルの権限をロールに付与
GRANT ALL PRIVILEGES sample_table TO sample_role;

その他

-- テーブルのデータをすべて削除
TRUNCATE TABLE sample_table;