【PostgreSQL】テーブル一覧とデータ件数を取得するSQL

2021年2月21日PostgreSQL構文

テーブル一覧を取得する

テーブル一覧を取得するSQL文を紹介します。

※ここで紹介するSQLは、そのまま実行できるので試してみて下さい。

--テーブル一覧をテーブル名順に取得するSQL
select tablename from pg_tables
where schemaname != 'pg_catalog' order by tablename;

 

 

テーブル一覧とそのデータ件数を表示する

テーブルごとのデータ数を一覧表示するSQL文を紹介します。

--テーブルごとのデータ数を表示する
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;

 

 

テーブルの列一覧を取得する

テーブルの列一覧を取得するSQL文です。

ここでは3列のみ取得していますが、取得できる列はその他にもたくさんあります。

すべての列を見るには、列名を「*」(アスタリスク)に変更し、実行してみて下さい。

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

 

 

delete文を生成するSQL

テーブル一覧を取得するSQLを使い、delete文を作成するSQLです。

※このSQLを投げると「delete from テーブル名;」の文が結果に出力されます。

--テーブル一覧からdelete文を作成する
select 
    'delete from ' || tablename || ';' as del_sql from pg_tables  -- delete文
where schemaname != 'pg_catalog'
--テーブル名で抽出するなら下の文の使います
--and tablename like '%テーブル名を指定%';

 

 

構文まとめを書いています。ぜひ一度見てみて下さい

「基本構文・こんな時どう書くんだっけ?」をまとめました