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;