Postgresカラム名とinformation_schema
PostgreSQLテーブルやその他のオブジェクトに関する情報が必要な場合は、そのオブジェクトのスキーマを調べると便利です。 PostgreSQLでは、これらのスキーマは、他の重要な情報とともに、information_schema
にアクセスすることによって表示できます。 この記事では、Postgresqlに接続し、Postgres information_schemaを使用してテーブルスキーマを表示する方法を説明します。,
PostgreSQLを使用するための前提条件
PostgreSQLに接続していくつかのSQLステートメントを実行する前に、このタスクの主要な前提条件のいくつかを見てみましょう。
-
まず、デバイスにPostgreSQLがインストールされていることを確認してください。 このサービスがインストールされているかどうかわからない場合は、
service postgresql status
コマンドを使用して、ステータスがactive
かどうかを調べます。コマンドラインからPostgreSQLと対話するには、psql
もインストールする必要があります。, コマンドpsql -V
を使用して、この対話型PostgreSQLインターフェイスがインストールされており、マシンで動作していることを確認できます。
テーブルスキーマを表示するために使用されるPostgres用のデータベースを作成します
サーバーにPostgreSQLデータベースが設定されていない場合は、このチュートリアルと共に従うために使用できるデータベースを作成してください。, 以下のコマンドを使用してデータベースを作成できます。
1
|
データベースを作成some_db;
|
- コマンドを入力します
\l
psql
コマンドラインインターフェイスで、postgresサーバー上のすべてのデータベースのリストを表示します。 - 次に、コマンドを使用します
\c
そのデータベースに接続するには、データベース名を続けます。,
‘psql’コマンドラインインターフェイスを使用したPostgreSQLへのアクセス
psql
コマンドラインインターフェイスを使用してPostgreSQLデータベースにアクセスするには、次のコマンドを使用できます。
1
|
sudo su-postgres
|
パスワードの入力を求められます。 それを入力すると、PostgreSQLにアクセスできるようになります。,
接続したら、次のコマンドを使用してユーザー名でデータベースにアクセスします。
1
|
psql some_username-h127.0.0.1-d some_database
|
-d
フラグはpostgresデータベース名を示します。 パスワードを再度入力するよう求められた場合は、入力してRETURNキーを押します。,
データベースのすべてのPostgreSQLテーブルを表示する
すでに作成されているすべてのテーブルを表示する場合は、\d
または\dt
コマンド,
‘pg_catalog’スキーマを使用してPostgreSQLテーブルを表示
SELECT
ステートメントを使用して、現在のデータベース内のすべてのテーブルに対してpg_catalog
スキーマを表示することもできます。
1
|
select*from pg_catalog.pg_tables where schemaname!=’pg_catalog’およびschemaname!,=’information_schema’;
|
上記のステートメントは、テーブルの名前、所有者、インデックスおよびその他の情報を表示します。
注:WHERE
句を使用して、返されるセットPostgreSQLテーブルをフィルタリングします。 !=
WHERE
句で使用される演算子は、schemaname
の値がNOT EQUAL TO
指定された条件でなければならないことを示します。,
Postgresに接続してテーブルスキーマと列名を表示します
information_schema
特定のPostgreSQLテーブルの列とスキーマ情報にアクセスするには、
1
2 3 |
information_schemaから*を選択します。,columns
WHERE table_schema=’some_schema’ AND TABLE_NAME=’some_table’; |
注:WHERE
句でテーブル名とスキーマ文字列値を参照する場合は、必ず一重引quotationで囲んでください('
)エラーを回避するためにマークします。,
The next SQL statement will return all the information_schema
‘s attributes for a particular table:
1
|
SELECT * FROM information_schema.,columns WHERE TABLE_NAME=’some_table’;
|
テーブルの列名を取得するには、Postgresのinformation_schemaを使用します
information_schema
からテーブルの列名だけにアクセスするこれをSELECT
ステートメントで指定します。
1
|
information_schemaから列名を選択します。,PostgreSQLテーブルの列名を表すデータのいくつかの行:
スキーマを使用してPostgreSQLのショーテーブルへの結論PostgreSQLでデータを扱っているとき、あなたはおそらく自分のテーブルに関する情報を取得する必要があります。, 幸いなことに、PostgreSQLに接続し、 0
コメントを残す |