はじめに
テーブルの作成、リレーションの確認、レポートの生成といったデータベース管理作業に携わっているなら、PostgreSQL の information_schema を理解しておくと非常に役立ちます。このチュートリアルでは、コード例を交えながら PostgreSQL の information_schema の基本を解説します。
このチュートリアルは主に PostgreSQL 向けに書かれていますが、一部の概念は他の SQL リレーショナルデータベースにも応用できます。
本題に入る前に、モダンで高速な PostgreSQL データベースマネージャーである Beekeeper Studio をご紹介させてください。スキーマの確認がとても簡単になり、PostgreSQL では無料でお使いいただけます。こちらからダウンロードできます。
Information_Schema とは?
information_schema は、PostgreSQL データベースにおいて「現在のデータベース」のメタデータへのアクセスを提供する重要な機能です。本質的には、「現在のデータベース」内のさまざまなオブジェクトに関する情報を含むビューの集まりです。テーブルからカラム、制約に至るまで、PostgreSQL の information_schema はデータベース構造の詳細を提供します。
SELECT *
FROM information_schema.tables;
たとえば Beekeeper Studio の SQL エディタで上記のコマンドを実行すると、現在のデータベース内のテーブル一覧が表示されます。
さらに詳しく
public テーブルの表示
現在のデータベースで利用可能なすべての public テーブルを一覧表示するには、次を実行するだけです:
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public';
このコマンドは、「現在のデータベース」の「public」スキーマにあるすべてのテーブル名の一覧を返します。
「chinook」サンプルデータベースでの出力
| table_name |
|---|
| artist |
| album |
| employee |
| customer |
| invoice |
| invoice_line |
| track |
| playlist |
| playlist_track |
| genre |
| media_type |
カラムの確認
information_schema.columns ビューを使うと、特定のテーブルのカラムに関する詳細な情報を取得できます:
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name ='album';
このコードは、選択したテーブルのすべてのカラム名とそのデータ型の一覧を返します。
「chinook」サンプルデータベースでの出力
| column_name | data_type |
|---|---|
| album_id | integer |
| artist_id | integer |
| title | character varying |
制約の表示
information_schema.table_constraints ビューは、テーブルに定義された制約に関する情報を提供します。
特定のテーブルの制約を取得するには、次のクエリを使用します:
SELECT constraint_name, constraint_type
FROM information_schema.table_constraints
WHERE table_name='album';
このコマンドを実行すると、「your_table」の制約名と種類が出力され、このテーブルに適用されているルールを把握できます。
「chinook」サンプルデータベースでの出力
| constraint_name | constraint_type |
|---|---|
| album_pkey | PRIMARY KEY |
| album_artist_id_fkey | FOREIGN KEY |
| 2200_65375_1_not_null | CHECK |
| 2200_65375_2_not_null | CHECK |
| 2200_65375_3_not_null | CHECK |
まとめ
PostgreSQL の information_schema は、データベースの構造や詳細を調べて理解するための重要なツールです。どのように活用するかは、具体的なニーズやデータベースの構成によって異なります。サンプルコマンドを正しく実行するには、サンプルのテーブル名やカラム名をお使いのデータベースのものに置き換えてください。
注: このチュートリアルの例はすべて PostgreSQL(バージョン 9.4 〜 13.3)向けであり、他のデータベースエンジンとは互換性がない場合があります。クエリは必ず使用しているデータベースエンジンに合わせて調整してください。PostgreSQL の information_schema を活用すれば、データベースの調査作業をより簡単かつ効果的に、そして大幅に短い時間で行えます。
Beekeeper Studio は無料のオープンソース PostgreSQL GUI です
まさに探していた PostgreSQL クライアントです!UI が他とは一線を画しています。クリーンで直感的、そしてパワフル。使いにくい PGAdmin とはお別れです。 - David Cyprian
Beekeeper Studio は高速で直感的、使いやすい PostgreSQL クライアントです。他にも多数のデータベースに対応しており、Windows、Mac、Linux で快適に動作します。
Beekeeper Studio に寄せられた PostgreSQL 利用者の声
pgAdmin と違って、Beekeeper は驚くほどシンプルに使えるのに機能も十分で、価格も手頃です!データベースのバックアップ機能は特に便利です。本当に素晴らしいソフトウェアです。
素晴らしいツールです。Postgres と MySql の DB 管理用として、これまで見つけた中で最も実用的な IDE です。面倒なことなく、ちゃんと動きます :-)