Loading article…
リレーショナルデータベースでは、情報スキーマ(information_schema)は、データベース内のすべてのテーブル、ビュー、列、およびプロシージャに関する情報を提供するANSI標準の読み取り専用ビューのセットです。 [1]これは、次のような非標準コマンドを通じて一部のデータベースが利用できる情報のソースとして使用できます。
- MySQL
SHOWのコマンド - OracleのSQL*Plus
DESCRIBEのコマンド - psql ( PostgreSQLのデフォルトのコマンドライン プログラム)
\dのコマンド。
=> information_schema.tables から count(table_name) を選択します。
カウント
-------
99
(1行)
=> SELECT 列名、データ型、列のデフォルト、is_nullable
information_schema.columns から table_name='alpha' を指定します。
列名 | データ型 | 列のデフォルト | null 可能
-------------+----------+-----+---------- ------
foo | 整数 | | はい
バー | 文字 | | はい
(2行)
=> SELECT * FROM information_schema.information_schema_catalog_name;
カタログ名
--------------
ジョン
(1行)
実装
主要なデータベース システムの中で注目すべき例外として、Oracle は 2015 年現在、[アップデート]情報スキーマを実装していません。この問題に対処するためのオープン ソース プロジェクトが存在します。
information_schema をサポートする RDBMS には次のものがあります。
- アマゾンレッドシフト
- アパッチハイブ
- マイクロソフトSQLサーバー
- マネーDB
- スノーフレーク
- マイグレーション
- PostgreSQL
- H2 データベース
- HSQLDB
- インターシステムズキャッシュ
- マリアDB
- SingleStore (旧称 MemSQL)
- マイマーSQL
- スノーフレーク[2]
- トリノ
- プレスト
- クレートDB
- クリックハウス
- コックローチDB
information_schema をサポートしていない RDBMS には次のものがあります。
- アパッチ・ダービー
- アパッチイグナイト
- 火の鳥
- マイクロソフト アクセス
- IBMインフォミックス
- アングル
- IBM DB2 について
- Oracle データベース
- SAP ハナ
- SQLite [3]
- シベース
- Sybase SQL Anywhere
- テラデータ
- ヴェルティカ
参照
外部リンク
- H2 データベースの情報スキーマ
- MySQL 9.0 の情報スキーマ
- PostgreSQL の情報スキーマ (現在のバージョン)
- SQLite の情報スキーマ
- Microsoft SQL Server 2014 の情報スキーマ
- Microsoft SQL Server Compact 4.0 の情報スキーマ
- SourceForge の Oracle Information Schema プロジェクト
- MariaDBの情報スキーマ
- MonetDBの情報スキーマ
- CrateDB の情報スキーマ
- CockroachDB の情報スキーマ
参考文献
- ^ Melton, Jim; Simon, Alan R. (1993). 「19.2 メタデータ、リポジトリ、および INFORMATION_SCHEMA」。新しいSQL を理解する: 完全ガイド。データ管理システムに関する Morgan Kaufmann シリーズ、ISSN 1046-1698。Morgan Kaufmann。p. 371。ISBN
9781558602458. 2015-10-22取得。
主にランタイム データベース環境に適用されるメタデータは、INFORMATION_SCHEMA を通じて管理されます。[...] 情報システム環境全体に適用されるメタデータは、ディクショナリまたはリポジトリを通じて管理されます。
- ^ 「Snowflake情報スキーマ」www.snowflake.com . 2024年3月25日閲覧。
- ^ 「SQLite でサポートされているプラグマ ステートメント」。www.sqlite.org。2022年 2 月 1 日閲覧。
