Информационная схема
Информационная схема (information_schema) — стандартизированный Американским национальным институтом стандартов набор представлений с метаинформацией обо всех объектах реляционной базы данных (таблицах, представлениях, столбцах, хранимых процедурах[1]).
Может быть использована для получения сведений об объектах (вместо команд SHOW
в MySQL, DESCRIBE
в Oracle Database или \d
в PostgreSQL), например, получить количество таблиц в базе:
SELECT count(table_name) FROM information_schema.tables;
возможный вывод:
count
-------
99
(1 row)
или узнать сведения о столбцах таблицы alpha
:
SELECT column_name, data_type, column_default, is_nullable
FROM information_schema.columns WHERE table_name='alpha';
возможный вывод:
column_name | data_type | column_default | is_nullable
-------------+-----------+----------------+-------------
foo | integer | | YES
bar | character | | YES
(2 rows)
Реализована во многих реляционных СУБД, включая Microsoft SQL Server, MySQL, PostgreSQL, также ей оснащены встраиваемые СУБД H2 и HSQLDB; ряд систем с SQL-подобным доступом к нереляционным источникам тоже поддерживают информационную схему, в их числе Apache Hive, Presto, Trino. Среди распространённых реляционных СУБД информационная схема не реализована в Oracle Database, IBM DB2, Firebird, Informix, SAP Hana, Vertica, Adaptive Server Enterprise, SQLite, Teradata Database.
Примечания
- ↑ Melton, Jim. 19.2 Metadata, Repositories and The INFORMATION_SCHEMA // Understanding the New SQL: A Complete Guide / Jim Melton, Alan R. Simon. — Morgan Kaufmann, 1993. — P. 371. — «Metadata that applies primarily to the runtime database environment is managed through the INFORMATION_SCHEMA. [...] Metadata that applies to the information system environment as a whole is managed through the dictionary or repository.». — ISBN 9781558602458.