information_schemaビューを使ってテーブル情報を取得する

2024-04-05

PostgreSQLにおける「DESCRIBE TABLE」コマンドの解説

PostgreSQLには、テーブルの構造や属性情報を表示する「DESCRIBE TABLE」コマンドは存在しません。しかし、いくつかの代替方法を用いて、同様の情報を得ることができます。

代替方法

  1. psqlコマンドの\dオプションを使用することで、テーブルの構造情報を表示できます。

    例:

    \d テーブル名
    

    出力例:

    Name | Type | Modifier | Description
    ------- | -------- | -------- | --------
    id | integer | not null |
    name | text | |
    created_at | timestamp without time zone | |
    
  2. information_schema.columnsビューをクエリすることで、テーブルの各列に関する詳細情報を取得できます。

    SELECT column_name, data_type, is_nullable, column_default
    FROM information_schema.columns
    WHERE table_name = 'テーブル名';
    
    column_name | data_type | is_nullable | column_default
    ------------- | -------- | -------- | --------
    id | integer | NO |
    name | text | YES |
    created_at | timestamp without time zone | YES |
    

補足

  • \d+ テーブル名
    



\d テーブル名
\d customers
Name | Type | Modifier | Description
------- | -------- | -------- | --------
id | integer | not null |
name | text | |
email | text | |
created_at | timestamp without time zone | |

information_schemaビュー

SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'テーブル名';
SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'customers';
column_name | data_type | is_nullable | column_default
------------- | -------- | -------- | --------
id | integer | NO |
name | text | YES |
email | text | YES |
created_at | timestamp without time zone | YES |

pgAdmin

  1. pgAdminでデータベースに接続します。
  2. テーブル名を右クリックします。
  3. メニューから「構造を表示」を選択します。
  • 上記のサンプルコードは、PostgreSQL 14.2で動作確認しています。
  • テーブル名や列名は適宜変更してください。



PostgreSQLのテーブル構造を表示するその他の方法

\dd コマンドは、テーブルの定義と制約を表示します。

\dd テーブル名
-- テーブル: public.customers

-- 列:

CREATE TABLE public.customers (
    id integer NOT NULL DEFAULT nextval('customers_id_seq'::regclass),
    name text,
    email text,
    created_at timestamp without time zone
);

-- 制約:

ALTER TABLE ONLY public.customers
    ADD CONSTRAINT customers_pkey PRIMARY KEY (id);

psqlの \x コマンド

\x テーブル名
 id | name | email | created_at
------- | -------- | -------- | --------
1 | 山田太郎 | [email protected] | 2023-11-14 10:29:00
2 | 佐藤花子 | [email protected] | 2023-11-15 11:30:00

外部ツール

pgAdminのようなGUIツールや、DBeaverのようなデータベース管理ツールを使用すれば、テーブル構造を視覚的に確認できます。

  • 上記の方法以外にも、PostgreSQLのテーブル構造を表示する方法はいくつかあります。

database postgresql command


セキュリティ対策も安心!Google 検索と Google Cloud Datastore のデータベースセキュリティ

種類: 独自の分散データベースシステム特徴: 膨大な量のウェブページと文書をインデックス化 高速かつ精度の高い検索を提供 ユーザーの検索意図に基づいて結果をランキング膨大な量のウェブページと文書をインデックス化高速かつ精度の高い検索を提供...


ファセット検索と他の検索方法を組み合わせる!ハイブリッド検索で効率的に情報を見つけよう

ファセット検索は、属性と呼ばれる多様な側面から検索結果を絞り込む機能です。従来のキーワード検索に加え、カテゴリー、価格帯、色、サイズ、ブランドなど、様々な属性を組み合わせることで、より精度の高い検索が可能になります。例えば、オンラインショップで「赤い靴」を探しているとします。従来のキーワード検索では、検索結果に赤い靴以外の商品も含まれてしまう可能性があります。しかし、ファセット検索であれば、「赤い靴」というキーワードに加え、「女性用」、「スニーカー」、「2,000円以下」などの属性を選択することで、検索結果を絞り込み、希望に合致する商品を素早く見つけることができます。...


【Java・Hibernate・PostgreSQL】MavenでPostgreSQLドライバーを依存関係に追加する方法を徹底解説!

Maven を使用して Java で PostgreSQL データベースに接続するには、プロジェクトに PostgreSQL JDBC ドライバーを依存関係として追加する必要があります。 このチュートリアルでは、Maven プロジェクトに PostgreSQL JDBC ドライバーを追加する方法を段階的に説明します。...


PostgreSQLで名前付き定数を疑似的に定義する方法

WITH 句を使用すると、クエリ内で一時的な名前付き変数または表を定義することができます。この方法は、単純な定数や、複数のクエリで使用される複雑な式を定義する場合に役立ちます。この例では、pi 変数に円周率の値を、radius 変数に円の半径の値を定義しています。その後、これらの変数を使用して円の面積を計算しています。...


SQL SQL SQL SQL Amazon で見る



SQL Server、MySQL、PostgreSQLでテーブルのフィールド名を返す

SELECT コマンドこのコマンドは、指定されたテーブル (table_name) からすべてのフィールド名 (column_name) を取得します。例:このコマンドは、customers テーブルのすべてのフィールド名を出力します。情報スキーマビュー


PostgreSQLのスキーマ内のテーブル一覧を表示する方法:psqlコマンド、SQLクエリ、GUIツール、情報スキーマ、pg_catalog.pg_tablesビュー、システムテーブル

psqlコマンドは、PostgreSQLデータベースと対話するためのコマンドラインツールです。psqlを使用してスキーマ内のテーブル一覧を表示するには、以下のコマンドを実行します。\dt は、テーブル一覧を表示するコマンドです。\d+ は、スキーマ名とテーブル名を表示するオプションです。


PostgreSQLのテーブル構造とテーブル一覧をプログラムで取得する方法

特定のテーブルの構造を確認するには、以下のコマンドを実行します。例:customers テーブルの構造を確認する場合このコマンドを実行すると、テーブル名、各カラム名、データ型、制約条件などの情報が表示されます。現在のデータベースに存在する全てのテーブル一覧を取得するには、以下のコマンドを実行します。