INFORMATION_SCHEMA (ou information_schema) é um banco de dados de sistema que fornece uma visão independente de SGBD (em certa medida) padronizada dos metadados de objetos de banco de dados. As views em INFORMATION_SCHEMA geralmente são inferiores às tabelas de sistema normais, mas ferramentas podem usá-las para obter informações básicas de forma compatível entre diferentes SGBDs. Espera-se que a estrutura e o conteúdo das views em INFORMATION_SCHEMA evoluam de maneira retrocompatível, ou seja, apenas novas funcionalidades sejam adicionadas, sem que as funcionalidades existentes sejam alteradas ou removidas. Em termos de implementação interna, as views em INFORMATION_SCHEMA normalmente mapeiam para tabelas de sistema normais, como system.columns, system.databases e system.tables.
INFORMATION_SCHEMA contém as seguintes views:
Views equivalentes sem distinção entre maiúsculas e minúsculas, por exemplo INFORMATION_SCHEMA.columns, são fornecidas por motivos de compatibilidade com outros bancos de dados. O mesmo se aplica a todas as colunas dessas views: são fornecidas variantes tanto em minúsculas (por exemplo, table_name) quanto em maiúsculas (TABLE_NAME).
COLUMNS
NULL), mas são exigidas pelo padrão.
Colunas:
table_catalog(String) — Atualmente não é usado.table_schema(String) — Atualmente não é usado.table_name(String) — Atualmente não é usado.non_unique(Int32) — Atualmente não é usado.index_schema(String) — Atualmente não é usado.index_name(Nullable(String)) — Atualmente não é usado.seq_in_index(UInt32) — Atualmente não é usado.column_name(Nullable(String)) — Atualmente não é usado.collation(Nullable(String)) — Atualmente não é usado.cardinality(Nullable(Int64)) — Atualmente não é usado.sub_part(Nullable(Int64)) — Atualmente não é usado.packed(Nullable(String)) — Atualmente não é usado.nullable(String) — Atualmente não é usado.index_type(String) — Atualmente não é usado.comment(String) — Atualmente não é usado.index_comment(String) — Atualmente não é usado.is_visible(String) — Atualmente não é usado.expression(Nullable(String)) — Atualmente não é usado.
Query
Response
SCHEMATA
NULL), mas são exigidas pelo padrão.
Colunas:
catalog_name(String) — O nome do banco de dados.schema_name(String) — O nome do banco de dados.schema_owner(String) — Nome do proprietário do schema, sempre'default'.default_character_set_catalog(Nullable(String)) —NULL, não suportado.default_character_set_schema(Nullable(String)) —NULL, não suportado.default_character_set_name(Nullable(String)) —NULL, não suportado.sql_path(Nullable(String)) —NULL, não suportado.
Query
Response
TABLES
table_catalog(String) — O nome do banco de dados em que a tabela está localizada.table_schema(String) — O nome do banco de dados em que a tabela está localizada.table_name(String) — Nome da tabela.table_type(String) — Tipo da tabela. Valores possíveis:BASE TABLEVIEWFOREIGN TABLELOCAL TEMPORARYSYSTEM VIEW
table_rows(Nullable(UInt64)) — O número total de linhas. NULL se não puder ser determinado.data_length(Nullable(UInt64)) — O tamanho dos dados em disco. NULL se não puder ser determinado.index_length(Nullable(UInt64)) — O tamanho total da chave primária, dos índices secundários e de todas as marcas.table_collation(Nullable(String)) — A collation padrão da tabela. Sempreutf8mb4_0900_ai_ci.table_comment(Nullable(String)) — O comentário usado ao criar a tabela.
Query
Response
VIEWS
table_catalog(String) — O nome do banco de dados em que a tabela está localizada.table_schema(String) — O nome do banco de dados em que a tabela está localizada.table_name(String) — Nome da tabela.view_definition(String) — consultaSELECTda view.check_option(String) —NONE, sem verificação.is_updatable(Enum8) —NO, a view não é atualizável.is_insertable_into(Enum8) — Mostra se a view criada é materializada. Valores possíveis:NO— A view criada não é materializada.YES— A view criada é materializada.
is_trigger_updatable(Enum8) —NO, o gatilho não é atualizável.is_trigger_deletable(Enum8) —NO, o gatilho não pode ser excluído.is_trigger_insertable_into(Enum8) —NO, nenhum dado é inserido no gatilho.
Query
Response
KEY_COLUMN_USAGE
constraint_catalog(String) — Atualmente sem uso. Sempredef.constraint_schema(String) — O nome do schema (banco de dados) ao qual a restrição pertence.constraint_name(Nullable(String)) — O nome da restrição.table_catalog(String) — Atualmente sem uso. Sempredef.table_schema(String) — O nome do schema (banco de dados) ao qual a tabela pertence.table_name(String) — O nome da tabela à qual a restrição se aplica.column_name(Nullable(String)) — O nome da coluna à qual a restrição se aplica.ordinal_position(UInt32) — Atualmente sem uso. Sempre1.position_in_unique_constraint(Nullable(UInt32)) — Atualmente sem uso. SempreNULL.referenced_table_schema(Nullable(String)) — Atualmente sem uso. Sempre NULL.referenced_table_name(Nullable(String)) — Atualmente sem uso. Sempre NULL.referenced_column_name(Nullable(String)) — Atualmente sem uso. Sempre NULL.
Query
Response
REFERENTIAL_CONSTRAINTS
constraint_catalog(String) — No momento, não é utilizado.constraint_schema(String) — No momento, não é utilizado.constraint_name(Nullable(String)) — No momento, não é utilizado.unique_constraint_catalog(String) — No momento, não é utilizado.unique_constraint_schema(String) — No momento, não é utilizado.unique_constraint_name(Nullable(String)) — No momento, não é utilizado.match_option(String) — No momento, não é utilizado.update_rule(String) — No momento, não é utilizado.delete_rule(String) — No momento, não é utilizado.table_name(String) — No momento, não é utilizado.referenced_table_name(String) — No momento, não é utilizado.