🧚 お知らせ!Beekeeper Studio は高速でモダンなオープンソースのデータベース GUI です ダウンロード
2024年8月25日 著者:Matthew Rathbone

前提条件

  • システムに 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のLinux版は100%フル機能。手抜きも機能の妥協も一切ありません。

Beekeeper Studio 利用者の声

★★★★★
「Beekeeper Studio で以前の SQL ワークフローを完全に置き換えました。高速で直感的で、データベース作業がまた楽しくなりました。」
— Alex K.、データベース開発者
★★★★★
「多くのデータベース GUI を試してきましたが、Beekeeper は機能とシンプルさのバランスが絶妙です。とにかくちゃんと動きます。」
— Sarah M.、フルスタックエンジニア