列の型を理解することは、クエリの効率性と適切なデータ処理を確保するのに役立つため、データベース管理者にとって非常に重要です。
このチュートリアルでは、PSQL などのツールを含め、PostgreSQL で列の型を取得するさまざまな方法を検討します。
サンプルテーブル
次のクエリの例は、さまざまなデータ型の 3 つの列を含む単純なテーブルを作成する方法を示しています。
CREATE TABLE サンプルテーブル (
id シリアル主キー、
名前 VARCHAR(50)、
年齢INT
);
デモンストレーションの目的で使用するテーブルを定義したら、PostgreSQL で列の型をフェッチするためのさまざまな方法を検討できます。
方法 1: INFORMATION_SCHEMA を使用する
PostgreSQL のさまざまなデータベース オブジェクトに関するメタデータ情報を取得する最も一般的な方法は、INFORMATION_SCHEMA カタログを使用することです。
information_schema テーブルを使用して列の型を取得するには、次のクエリを実行します。
SELECT テーブル名、列名、データ型FROM information_schema.columns
WHERE テーブルスキーマ = 'パブリック';
前のクエリは、パブリック スキーマ内のすべての列のテーブル名、列名、およびデータ型を取得します。 table_schema 条件を調整して、特定のスキーマから列を取得します。
パブリック スキーマにsample_tableのみがあると仮定すると、次のような出力が表示されるはずです。
テーブル名 |列名 |データ・タイプ----------+---------------+---------------------
サンプルテーブル | id |整数
サンプルテーブル |年齢 |整数
サンプルテーブル |名前 |性格が変化する
(3行)
ご覧のとおり、テーブル名、列名、およびそれに対応するデータ型が取得されます。
方法 2: PSQL コマンドを使用する
PSQL ユーティリティから「\d」コマンドを使用して、特定のテーブル列に関する情報を取得することもできます。
ターゲット データベースに接続したら、次のように「\d」に続けてテーブル名を使用します。
\d テーブル名例:
\d サンプルテーブル;指定されたコマンドは次のような出力を返すはずです。
出力には、列名、データ型、その他のテーブル構造情報が含まれます。
方法 3: Pg_attribute カタログ テーブルを使用する
また、pg_attribute カタログ テーブルにクエリを実行して、テーブル列のデータ型を取得することもできます。クエリ構文は次のとおりです。
SELECT attname AS column_name、format_type(atttypid, atttypmod) AS data_typeFROM pg_attribute
WHERE attrelid ='target_table'::regclass
かつ attnum > 0
そして落とされていない。
target_table パラメータを、ターゲット列が存在するテーブル名に置き換えます。
例は次のとおりです。
SELECT attname AS column_name、format_type(atttypid, atttypmod) AS data_typeFROM pg_attribute
WHERE attrelid = 'sample_table'::regclass
かつ attnum > 0
そして、落とされていない。
これにより、次のように列名と対応するデータ型が返されます。
結論
PostgreSQL ツールを使用してテーブル列のデータ型を表示する 3 つの主な方法を検討しました。列のデータ型を取得することは、効率的で互換性のあるアプリケーション クエリを構築するために不可欠です。