【PostgreSQL】DBやテーブル情報の取得変更まとめ

スポンサーリンク

データベースやテーブル情報の取得・変更

1.テーブル一覧の取得

--データベースに存在するテーブルの取得。(そのまま実行してみてください)
select tablename from pg_tables
where schemaname != 'pg_catalog' order by tablename;

 

2.テーブルの列一覧の取得

--'テーブル名'に存在する列一覧を取得
select * from information_schema.columns
where table_name='テーブル名' order by ordinal_position;

 

3.ビュー一覧の取得

select * From pg_views
where schemaname = 'public';

 

4.データベース一覧の取得

SELECT datname FROM pg_database WHERE datistemplate = false;

 

5.シーケンス一覧の取得

SELECT relname FROM pg_class 
JOIN pg_namespace ON (pg_class.relnamespace = pg_namespace.oid) 
WHERE relkind = 'S';

 

6.シーケンスの初期化

select SETVAL('seq_name', 1 , false); --シーケンス「seq_name」を1に設定

 

7.トリガー一覧の取得

SELECT * FROM information_schema.triggers;

 

8.テーブルデータ数の一覧を表示する

SELECT pg_class.relname , pg_class.reltuples
FROM pg_stat_user_tables
INNER JOIN pg_class ON pg_stat_user_tables.relname = pg_class.relname
order by cast(pg_class.reltuples as numeric) desc;

 

9.列の追加・変更・削除

--列の追加
ALTER TABLE テーブル名 add 列名 型;

--Not Null制約の追加
ALTER TABLE テーブル名 ALTER COLUMN 列名 SET NOT NULL;

--デフォルト値の追加
ALTER TABLE テーブル名 ALTER COLUMN 列名 SET DEFAULT 1;

--列の削除
ALTER TABLE テーブル名 DROP COLUMN 列名;

 

10.データベース・テーブル・列にコメントを付加する

COMMENT ON DATABASE データベース名 IS 'コメントです';	--データベースへコメント
COMMENT ON TABLE テーブル名 IS 'コメントです';        	--テーブルへコメント
COMMENT ON COLUMN テーブル名.列名 IS 'コメントです'; 	--列へコメント
COMMENT ON COLUMN テーブル名.列名 IS NULL;         	    --コメントの削除

 

11.ディスク容量を調べる

SELECT datname, pg_size_pretty(pg_database_size(datname)) 
FROM pg_database;  -- データベースの物理容量を取得する
 
SELECT relname, reltuples as rows, (relpages * 8192) as bytes
,((relpages * 8192) / (1024 * 1024)) AS mbytes 
FROM pg_class order by mbytes desc; --テーブルの物理容量を取得する

 

 

この他にもPostgreSQLのまとめをしています↓

お気に入りに!「こんな時どう書くんだっけ?」の構文・SQLのまとめ