INFORMATION_SCHEMA (o information_schema) es una base de datos del sistema que proporciona una vista independiente del SGBD de los metadatos de los objetos de la base de datos, de forma casi estandarizada. Por lo general, las vistas de INFORMATION_SCHEMA son menos completas que las tablas del sistema normales, pero las herramientas pueden usarlas para obtener información básica de forma transversal entre distintos SGBD. Se espera que la estructura y el contenido de las vistas de INFORMATION_SCHEMA evolucionen de forma retrocompatible; es decir, solo se añade funcionalidad nueva, pero la funcionalidad existente no se modifica ni se elimina. En cuanto a la implementación interna, las vistas de INFORMATION_SCHEMA suelen corresponder a tablas del sistema normales como system.columns, system.databases y system.tables.
INFORMATION_SCHEMA contiene las siguientes vistas:
Se ofrecen vistas equivalentes que no distinguen entre mayúsculas y minúsculas, por ejemplo, INFORMATION_SCHEMA.columns, por motivos de compatibilidad con otras bases de datos. Lo mismo se aplica a todas las columnas de estas vistas: se ofrecen variantes tanto en minúsculas (por ejemplo, table_name) como en mayúsculas (TABLE_NAME).
COLUMNS
NULL), pero que el estándar exige.
Columnas:
table_catalog(String) — Actualmente no se utiliza.table_schema(String) — Actualmente no se utiliza.table_name(String) — Actualmente no se utiliza.non_unique(Int32) — Actualmente no se utiliza.index_schema(String) — Actualmente no se utiliza.index_name(Nullable(String)) — Actualmente no se utiliza.seq_in_index(UInt32) — Actualmente no se utiliza.column_name(Nullable(String)) — Actualmente no se utiliza.collation(Nullable(String)) — Actualmente no se utiliza.cardinality(Nullable(Int64)) — Actualmente no se utiliza.sub_part(Nullable(Int64)) — Actualmente no se utiliza.packed(Nullable(String)) — Actualmente no se utiliza.nullable(String) — Actualmente no se utiliza.index_type(String) — Actualmente no se utiliza.comment(String) — Actualmente no se utiliza.index_comment(String) — Actualmente no se utiliza.is_visible(String) — Actualmente no se utiliza.expression(Nullable(String)) — Actualmente no se utiliza.
Query
Response
SCHEMATA
NULL), pero que el estándar requiere.
Columnas:
catalog_name(String) — El nombre de la base de datos.schema_name(String) — El nombre de la base de datos.schema_owner(String) — Nombre del propietario del esquema, siempre'default'.default_character_set_catalog(Nullable(String)) —NULL, no se admite.default_character_set_schema(Nullable(String)) —NULL, no se admite.default_character_set_name(Nullable(String)) —NULL, no se admite.sql_path(Nullable(String)) —NULL, no se admite.
Query
Response
TABLES
table_catalog(String) — El nombre de la base de datos en la que se encuentra la tabla.table_schema(String) — El nombre de la base de datos en la que se encuentra la tabla.table_name(String) — Nombre de la tabla.table_type(String) — Tipo de tabla. Valores posibles:BASE TABLEVIEWFOREIGN TABLELOCAL TEMPORARYSYSTEM VIEW
table_rows(Nullable(UInt64)) — El número total de filas. NULL si no se pudo determinar.data_length(Nullable(UInt64)) — El tamaño de los datos en disco. NULL si no se pudo determinar.index_length(Nullable(UInt64)) — El tamaño total de la clave primaria, los índices secundarios y todas las marcas.table_collation(Nullable(String)) — La intercalación predeterminada de la tabla. Siempreutf8mb4_0900_ai_ci.table_comment(Nullable(String)) — El comentario utilizado al crear la tabla.
Query
Response
VIEWS
table_catalog(String) — El nombre de la base de datos en la que se encuentra la tabla.table_schema(String) — El nombre de la base de datos en la que se encuentra la tabla.table_name(String) — Nombre de la tabla.view_definition(String) — consultaSELECTde la vista.check_option(String) —NONE, sin comprobación.is_updatable(Enum8) —NO, la vista no es actualizable.is_insertable_into(Enum8) — Indica si la vista creada está materializada. Valores posibles:NO— La vista creada no está materializada.YES— La vista creada está materializada.
is_trigger_updatable(Enum8) —NO, el trigger no es actualizable.is_trigger_deletable(Enum8) —NO, el trigger no se elimina.is_trigger_insertable_into(Enum8) —NO, no se insertan datos en el trigger.
Query
Response
KEY_COLUMN_USAGE
constraint_catalog(String) — Actualmente no se usa. Siempre esdef.constraint_schema(String) — El nombre del esquema (base de datos) al que pertenece la restricción.constraint_name(Nullable(String)) — El nombre de la restricción.table_catalog(String) — Actualmente no se usa. Siempre esdef.table_schema(String) — El nombre del esquema (base de datos) al que pertenece la tabla.table_name(String) — El nombre de la tabla que tiene la restricción.column_name(Nullable(String)) — El nombre de la columna que tiene la restricción.ordinal_position(UInt32) — Actualmente no se usa. Siempre es1.position_in_unique_constraint(Nullable(UInt32)) — Actualmente no se usa. Siempre esNULL.referenced_table_schema(Nullable(String)) — Actualmente no se usa. Siempre es NULL.referenced_table_name(Nullable(String)) — Actualmente no se usa. Siempre es NULL.referenced_column_name(Nullable(String)) — Actualmente no se usa. Siempre es NULL.
Query
Response
REFERENTIAL_CONSTRAINTS
constraint_catalog(String) — Actualmente no se utiliza.constraint_schema(String) — Actualmente no se utiliza.constraint_name(Nullable(String)) — Actualmente no se utiliza.unique_constraint_catalog(String) — Actualmente no se utiliza.unique_constraint_schema(String) — Actualmente no se utiliza.unique_constraint_name(Nullable(String)) — Actualmente no se utiliza.match_option(String) — Actualmente no se utiliza.update_rule(String) — Actualmente no se utiliza.delete_rule(String) — Actualmente no se utiliza.table_name(String) — Actualmente no se utiliza.referenced_table_name(String) — Actualmente no se utiliza.