Postgres の列タイプの取得

Postgres No Lietaipuno Qu De



列タイプとは、データベース テーブル内の特定の列に割り当てられるデータ形式またはタイプを指します。列の型によって、整数、テキスト、日付、ブール値など、特定の列に格納できるデータ型が決まります。

列の型を理解することは、クエリの効率性と適切なデータ処理を確保するのに役立つため、データベース管理者にとって非常に重要です。

このチュートリアルでは、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_type
FROM pg_attribute
WHERE attrelid ='target_table'::regclass
かつ attnum > 0
そして落とされていない。

target_table パラメータを、ターゲット列が存在するテーブル名に置き換えます。

例は次のとおりです。

SELECT attname AS column_name、format_type(atttypid, atttypmod) AS data_type
FROM pg_attribute
WHERE attrelid = 'sample_table'::regclass
かつ attnum > 0
そして、落とされていない。

これにより、次のように列名と対応するデータ型が返されます。

結論

PostgreSQL ツールを使用してテーブル列のデータ型を表示する 3 つの主な方法を検討しました。列のデータ型を取得することは、効率的で互換性のあるアプリケーション クエリを構築するために不可欠です。