データベース

【PostgreSQL】テーブル一覧を取得する方法

PostgreSQLのDBに作成されているテーブル情報の一覧を取得する方法について紹介します。

PostgreSQLのデータベースに登録したテーブル名をさっと取得したい時やテーブル名の検索ができるので覚えておくと便利です。

名無し君
名無し君
テーブル情報を取得する方法を知りたい方におすすめの記事です。

最後まで読んでみてください。

テーブル一覧を取得する方法

この記事では2種類の方法を紹介します。

\dtコマンドで取得する

PostgreSQLのコマンドラインを使用する方法です。

次のコマンドを使えば、データベースに作成したテーブルの一覧を取得することが可能です。

テーブル一覧を取得するコマンド

¥dt

Windows OSの場合は、PostgreSQLのコマンドをコマンドプロンプトで実行できるように設定が必要です。設定が完了していない場合は以下のリンクから設定を行っておきましょう。

>>コマンドラインを実行する方法を確認する

コマンドプロンプトを起動します。PostgreSQLにログインし、テーブルを取得したいデータベースへ接続を行います。それらを行うコマンドが以下です。

ここでは事前に「sampledb」という名前でデータベースを作成しています。「sampledb」の部分は、お使いのデータベース名に変更をしましょう。

ログイン&データベース接続コマンド

psql -U postgres -d sampledb

これで準備が整いました。

先ほど紹介した「テーブル一覧を取得するコマンド」を実行してみましょう。実行結果は次のようになります。

このコマンドに引数無しで実行した場合、「public」なスキーマに作成されているテーブルの一覧が表示されます。

上記以外の「private」なスキーマに作成されているテーブルを一覧を取得するには、引数にスキーマ名を指定します。

テーブル一覧を取得するコマンド

¥dt sampleschema.*

実行結果は次のようになります。

 

システムカタログ pg_tables で取得する

PostgreSQLのシステムカタログにあるテーブルに関する情報をまとめた「pg_tables」から情報を取得する方法です。

次のSQL文を使えば、テーブル情報の一覧を取得することが可能です。

テーブル情報一覧を取得するSQL文

select schemaname, tablename, tableowner from pg_tables;

実行結果は次のようになります。

pg_tablesには、schemanameやtablename、tableowner以外にも以下のカラムがあります。

名前データ型参照先説明
schemanamenamepg_namespace.nspnameテーブルのスキーマ名
tablenamenamepg_class.relnameテーブル名
tableownernamepg_authid.rolnameテーブルの所有者
tablespacenamepg_tablespace.spcnameテーブルを含むテーブル空間の名前(データベースのデフォルトの場合はNULL)
hasindexesbooleanpg_class.relhasindexテーブルがインデックスを持っている(もしくは最近まで持っていた)なら真
hasrulesbooleanpg_class.relhasrulesテーブルにルールがある(もしくは以前あった)時は真
hastriggersbooleanpg_class.relhastriggersテーブルにトリガがある(もしくは以前あった)時は真
rowsecuritybooleanpg_class.relrowsecurityテーブルの行セキュリティが有効なら真

\dtコマンドとは異なり、データベースに作成されているテーブルやシステムが使用しているテーブル名の全てが取得されていることが分かります。

publicなスキーマだけを表示するには、SQL文のWHERE句を使って条件指定を行います。

条件指定でテーブル一覧を取得するSQL文

select schemaname, tablename, tableowner from pg_tables where schemaname = ‘public’;

実行結果は次のようになります。

まとめ

PostgreSQLのDBに作成されているテーブル情報の一覧を取得する方法について紹介しました。

PostgreSQLのテーブルの参照方法については、「\dt」コマンドを利用するか、もしくは「システムカタログ pg_tables 」を利用しましょう。

 

以上、最後まで読んで頂きありがとうございました。

プログラミングを学習したいなら…

プログラミングスキルを身に付けるなら、プログラミングを効率良く学べる
プログラミングスクール」がオススメです。

特にこんな方にオススメ!!
これからエンジニアを目指したい
プログラミングの専門性を高めたい
プログラミングを学んで副業をしたい
エンジニアに転職して年収をアップさせたい

プログラミングを触ったことがない未経験からでも、プログラミングスクールで学習すれば、エンジニアへ就職・転職することも可能です。

あなたの「行動力」と「やる気」で、あなたの人生を大きく変えるチャンスになることでしょう。

プログラミングスクールに興味がある方は是非チェックしてみてください。

> プログラミングを学ぶ <

COMMENT

メールアドレスが公開されることはありません。

CAPTCHA