information_schemaビューを使ってPostgreSQLのテーブル名を一覧表示する
PostgreSQLで全てのテーブル名を一覧表示するクエリ
\dtコマンドを使用する
これは、PostgreSQLのpsqlコマンドラインツールで利用できるコマンドです。
\dt
このコマンドを実行すると、現在のデータベースに存在する全てのテーブル名が一覧表示されます。
information_schema
は、PostgreSQLデータベースに関するメタデータ情報を提供するスキーマです。このスキーマには、tables
というビューがあり、このビューには全てのテーブルに関する情報が含まれています。
SELECT table_name
FROM information_schema.tables;
pg_catalogシステムカタログを使用する
pg_catalog
は、PostgreSQLデータベースのシステムカタログです。このカタログには、pg_class
というテーブルがあり、このテーブルには全てのテーブルに関する情報が含まれています。
SELECT relname AS table_name
FROM pg_catalog.pg_class
WHERE relkind = 'r';
各方法の詳細
方法 | 利点 | 欠点 |
---|---|---|
\dt コマンド | 簡単 | 詳細な情報が表示されない |
information_schema ビュー | 詳細な情報が表示される | 少し複雑 |
pg_catalog システムカタログ | 非常に詳細な情報が表示される | 複雑 |
その他のオプション
上記の3つの方法に加えて、以下のようなオプションもあります。
- 特定のスキーマに属するテーブルのみを表示する
- テーブル名だけでなく、その他の情報も表示する
詳細は、PostgreSQLの公式ドキュメントを参照してください。
\dtコマンドを使用する
# psqlコマンドラインツールで実行
\dt
information_schemaビューを使用する
# PostgreSQLクライアントで実行
SELECT table_name
FROM information_schema.tables;
pg_catalogシステムカタログを使用する
# PostgreSQLクライアントで実行
SELECT relname AS table_name
FROM pg_catalog.pg_class
WHERE relkind = 'r';
また、これらのサンプルコードは、基本的な使用方法を示すものです。より詳細な情報は、公式ドキュメントを参照してください。
PostgreSQLで全てのテーブル名を一覧表示するその他の方法
psqlコマンドのオプションを使用する
psql
コマンドには、テーブル名を一覧表示する際に役立つオプションがいくつかあります。
-t
オプション: テーブル名をタブ区切りで表示します。-c
オプション: 特定のカラムのみを表示します。
psql -l -t
外部ツールを使用する
pgAdmin
やDBeaver
などの外部ツールを使用して、テーブル名を一覧表示することもできます。これらのツールは、GUIで操作できるため、初心者にとって使いやすいというメリットがあります。
スクリプトを使用する
PostgreSQLのPL/pgSQLを使用して、テーブル名を一覧表示するスクリプトを作成することもできます。
CREATE FUNCTION list_tables() RETURNS text AS
$$
DECLARE
rec RECORD;
BEGIN
FOR rec IN
SELECT table_name
FROM information_schema.tables
LOOP
RAISE NOTICE '%', rec.table_name;
END LOOP;
END;
$$ LANGUAGE plpgsql;
SELECT list_tables();
PostgreSQLで全てのテーブル名を一覧表示するには、いくつかの方法があります。それぞれの方法には利点と欠点があるため、自分の目的に合った方法を選択してください。
postgresql postgresql-9.2 information-schema