In relational databases, the information schema (information_schema) is an ANSI-standard set of read-only views that provide information about all of the tables, views, columns, and procedures in a database. It can be used as a source of the information that some databases make available through non-standard commands, such as:
SHOW command of MySQLDESCRIBE command of Oracle's SQL*Plus\d command in psql (PostgreSQL's default command-line program). => SELECT count(table_name) FROM information_schema.tables;
count
-------
99
(1 row)
=> 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)
=> SELECT * FROM information_schema.information_schema_catalog_name;
catalog_name
--------------
johnd
(1 row)
As a notable exception among major database systems, Oracle does not as of 2015[update] implement the information schema. An open-source project exists to address this.
RDBMSs that support information_schema include:
RDBMSs that do not support information_schema include:
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.