前提条件
- システムに PostgreSQL がインストールされていること。
- psql コマンドラインツールが使用できること。
- SQL と PostgreSQL の基本的な知識があること。
データベースへの接続
まず、PostgreSQL データベースに接続する必要があります。psql コマンドに続けてデータベース名を指定して実行します:
psql -d your_database_name
PostgreSQL サーバーでユーザー名とパスワードが必要な場合は、次のようにユーザー名を指定できます:
psql -U your_username -d your_database_name
パスワードを入力すると、データベースに接続されます。
\dt コマンドを使う
現在のデータベース内のすべてのテーブルを一覧表示する最も手軽な方法は、\dt コマンドを使うことです:
\dt
出力例:
List of relations
Schema | Name | Type | Owner
--------+---------------------+-------+---------
public | my_first_table | table | postgres
public | my_second_table | table | postgres
public | another_table | table | postgres
(3 rows)
テーブルについてさらに詳しい情報を確認したい場合は、次のコマンドも使えます:
\dt+
このコマンドは public スキーマ内のすべてのテーブルを表示します。すべてのスキーマのテーブルを一覧表示するには、次のようにします:
\dt *.*
Information Schema をクエリする
別の方法として、information_schema.tables ビューを直接クエリすることもできます。出力をより細かく制御したい場合に特に便利です:
SELECT table_schema, table_name
FROM information_schema.tables
WHERE table_type = 'BASE TABLE' AND table_schema NOT IN ('pg_catalog', 'information_schema');
出力例:
table_schema | table_name
--------------+------------------
public | my_first_table
public | my_second_table
public | another_table
(3 rows)
このクエリは、システムスキーマを除くすべてのスキーマのテーブルを一覧表示します。
pg_tables ビューを使う
pg_tables システムカタログを使ってテーブルを一覧表示することもできます:
SELECT schemaname, tablename
FROM pg_tables
WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema';
出力例:
schemaname | tablename
------------+-----------------
public | my_first_table
public | my_second_table
public | another_table
(3 rows)
この方法は information_schema.tables をクエリする方法とよく似ていますが、PostgreSQL の内部カタログを直接参照します。
スキーマでテーブルを絞り込む
特定のスキーマのテーブルを一覧表示したい場合は、前述のクエリを修正して table_schema または schemaname 列で絞り込みます:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'your_schema_name' AND table_type = 'BASE TABLE';
または pg_tables を使う場合:
SELECT tablename
FROM pg_tables
WHERE schemaname = 'your_schema_name';
まとめ
psql を使った PostgreSQL のテーブル一覧表示は簡単で、用途に応じて複数の方法があります。\dt コマンドが最も手軽で、information_schema や pg_tables をクエリする方法はより細かな制御と柔軟性を提供します。ご自身のワークフローに合った方法を使ってください。
こちらの記事もおすすめです:
Beekeeper Studioは無料のオープンソースのデータベースGUIです
これまで使った中で最高のSQLクエリ&エディタツールです。データベースの管理に必要なものがすべて揃っています。 - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studioは高速で直感的、そして使いやすいツールです。多数のデータベースに対応し、Windows、Mac、Linuxで快適に動作します。
Beekeeper Studio 利用者の声
「Beekeeper Studio で以前の SQL ワークフローを完全に置き換えました。高速で直感的で、データベース作業がまた楽しくなりました。」
「多くのデータベース GUI を試してきましたが、Beekeeper は機能とシンプルさのバランスが絶妙です。とにかくちゃんと動きます。」