PostgreSQL で列名を取得する

Shihab Sikder 2023年6月20日
  1. PostgreSQL で \d+ コマンドを使用して列名を取得する
  2. 列名を取得する SQL クエリ
PostgreSQL で列名を取得する

この記事では、PostgreSQL で \d+ コマンドを使用して列名を取得する方法について説明します。

PostgreSQL で \d+ コマンドを使用して列名を取得する

列には複数のプロパティがあります。 PostgreSQL には、テーブルの列の詳細を表示できる組み込み機能がいくつかあります。

私のシステムでは、データベースに次のテーブルがあります。

postgres=# \dt
          List of relations
 Schema |   Name   | Type  |  Owner
--------+----------+-------+----------
 public | account  | table | postgres
 public | accounts | table | postgres
 public | bank     | table | postgres
 public | logger   | table | postgres
 public | product  | table | postgres
 public | purchase | table | postgres
 public | randoms  | table | postgres
 public | students | table | postgres
 public | times    | table | postgres
 public | wishlist | table | postgres
(10 rows)
postgres=#

テーブル "accounts" のすべての列名、タイプ、および詳細を確認したいと考えています。

構文:

\d+ accounts

出力:

PostgreSQL で d+ コマンドで列名を取得する

また、このコマンドは、このテーブルに関連するすべての制約を表示します。

列名を取得する SQL クエリ

クエリを作成する前に、この情報がどのテーブルに格納されているかを知る必要があります。 "information_schema.columns" はテーブルの列情報を保持し、多くのフィールドがあります。

完全なリストは こちら でご覧いただけます。

クエリ:

SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'accounts';

出力:

 column_name |          data_type
-------------+-----------------------------
 user_id     | integer
 postcode    | integer
 age         | integer
 height      | integer
 timestamp   | timestamp without time zone
 username    | character varying
 password    | character varying
 email       | character varying
 contact     | character varying
(9 rows)

また、追加のチェックを提供することもできます。 ここでは、PSQL シェルを使用しているためです。 デフォルトで特定のデータベースに接続しており、クエリはそのスキーマで実行されます。

更新された SQL ステートメントは次のようになります。

クエリ:

SELECT column_name, data_type,
FROM information_schema.columns
WHERE
table_name = 'table_name'
AND table_catalog = 'database_name'
AND table_schema = 'schema_name'

"schema-table" の公式ドキュメント リンク はこちらです。

著者: Shihab Sikder
Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website

関連記事 - PostgreSQL Column