システムテーブルpg_catalog.pg_attributeで属性情報を取得
PostgreSQLテーブルの列名とデータ型を取得する方法
\d コマンドを使用する
psqlコマンドラインツールで \d
コマンドを使用すると、テーブルの構造情報を含む一覧が表示されます。
\d テーブル名
例:
\d customers
出力例:
テーブル "public.customers"
列名 | データ型 | 修飾子 | 説明
-------+---------+---------+---------
id | integer | not null |
name | text | |
email | text | |
created_at | timestamp | |
updated_at | timestamp | |
information_schema
スキーマには、データベースに関するメタデータを含むビューが用意されています。
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'テーブル名';
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'customers';
column_name | data_type
------------+---------
id | integer
name | text
email | text
created_at | timestamp
updated_at | timestamp
pg_catalog.pg_attribute
システムテーブルには、テーブルの属性に関する情報が格納されています。
SELECT attname AS column_name, typname AS data_type
FROM pg_catalog.pg_attribute
WHERE attrelid = (
SELECT oid
FROM pg_catalog.pg_class
WHERE relname = 'テーブル名'
);
SELECT attname AS column_name, typname AS data_type
FROM pg_catalog.pg_attribute
WHERE attrelid = (
SELECT oid
FROM pg_catalog.pg_class
WHERE relname = 'customers'
);
column_name | data_type
------------+---------
id | integer
name | text
email | text
created_at | timestamp
updated_at | timestamp
上記の方法のいずれでも、PostgreSQLテーブルの列名とデータ型を取得することができます。
- 簡易的な確認には
\d
コマンドが便利です。 - より詳細な情報が必要な場合は、
information_schema
ビューやpg_catalog.pg_attribute
システムテーブルを使用します。
\d コマンドを使用する
\d customers
information_schema ビューを使用する
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'customers';
pg_catalog.pg_attribute システムテーブルを使用する
SELECT attname AS column_name, typname AS data_type
FROM pg_catalog.pg_attribute
WHERE attrelid = (
SELECT oid
FROM pg_catalog.pg_class
WHERE relname = 'customers'
);
GUIツールを使用する
pgAdminやDbeaverなどのGUIツールを使用すると、テーブル構造を簡単に確認できます。
プログラミング言語を使用する
PythonやJavaなどのプログラミング言語を使用して、データベースに接続し、列名とデータ型を取得することができます。
SQL関数を使用する
information_schema()
や pg_catalog
などのスキーマに用意されている関数を使用して、列名とデータ型を取得することができます。
PostgreSQLテーブルの列名とデータ型を取得する方法はいくつかあります。
sql postgresql sqldatatypes