> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Системная база данных, предоставляющая почти стандартизированное, не зависящее от СУБД представление метаданных объектов базы данных.

# INFORMATION_SCHEMA

`INFORMATION_SCHEMA` (или `information_schema`) — это системная база данных, которая предоставляет почти стандартизированное [не зависящее от СУБД представление](https://en.wikipedia.org/wiki/Information_schema) метаданных объектов базы данных. Представления в `INFORMATION_SCHEMA` обычно уступают обычным системным таблицам, однако инструменты могут использовать их для получения базовой информации единообразным способом в разных СУБД. Предполагается, что структура и содержимое представлений в `INFORMATION_SCHEMA` будут развиваться с сохранением обратной совместимости, то есть будет добавляться только новая функциональность, а существующая не будет изменяться или удаляться. С точки зрения внутренней реализации представления в `INFORMATION_SCHEMA` обычно отображаются на обычные системные таблицы, такие как [system.columns](/ru/reference/system-tables/columns), [system.databases](/ru/reference/system-tables/databases) и [system.tables](/ru/reference/system-tables/tables).

```sql theme={null}
SHOW TABLES FROM INFORMATION_SCHEMA;

-- или:
SHOW TABLES FROM information_schema;
```

```text theme={null}
┌─name────────────────────┐
│ COLUMNS                 │
│ KEY_COLUMN_USAGE        │
│ REFERENTIAL_CONSTRAINTS │
│ SCHEMATA                │
| STATISTICS              |
│ TABLES                  │
│ VIEWS                   │
│ columns                 │
│ key_column_usage        │
│ referential_constraints │
│ schemata                │
| statistics              |
│ tables                  │
│ views                   │
└─────────────────────────┘
```

`INFORMATION_SCHEMA` содержит следующие представления:

* [COLUMNS](#columns)
* [KEY\_COLUMN\_USAGE](#key_column_usage)
* [REFERENTIAL\_CONSTRAINTS](#referential_constraints)
* [SCHEMATA](#schemata)
* [STATISTICS](#statistics)
* [TABLES](#tables)
* [VIEWS](#views)

Регистронезависимые эквиваленты этих представлений, например `INFORMATION_SCHEMA.columns`, предусмотрены для совместимости с другими базами данных. То же самое относится ко всем столбцам в этих представлениях: доступны варианты как в нижнем регистре (например, `table_name`), так и в верхнем (`TABLE_NAME`).

<div id="columns">
  ## COLUMNS
</div>

Содержит столбцы из системной таблицы [system.columns](/ru/reference/system-tables/columns), а также столбцы, которые не поддерживаются в ClickHouse или не имеют смысла (всегда `NULL`), но должны присутствовать по стандарту.

Столбцы:

* `table_catalog` ([String](/ru/reference/data-types/string)) — Сейчас не используется.
* `table_schema` ([String](/ru/reference/data-types/string)) — Сейчас не используется.
* `table_name` ([String](/ru/reference/data-types/string)) — Сейчас не используется.
* `non_unique` ([Int32](/ru/reference/data-types/int-uint)) — Сейчас не используется.
* `index_schema` ([String](/ru/reference/data-types/string)) — Сейчас не используется.
* `index_name` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — Сейчас не используется.
* `seq_in_index` ([UInt32](/ru/reference/data-types/int-uint)) — Сейчас не используется.
* `column_name` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — Сейчас не используется.
* `collation` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — Сейчас не используется.
* `cardinality` ([Nullable](/ru/reference/data-types/nullable)([Int64](/ru/reference/data-types/int-uint))) — Сейчас не используется.
* `sub_part` ([Nullable](/ru/reference/data-types/nullable)([Int64](/ru/reference/data-types/int-uint))) — Сейчас не используется.
* `packed` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — Сейчас не используется.
* `nullable` ([String](/ru/reference/data-types/string)) — Сейчас не используется.
* `index_type` ([String](/ru/reference/data-types/string)) — Сейчас не используется.
* `comment` ([String](/ru/reference/data-types/string)) — Сейчас не используется.
* `index_comment` ([String](/ru/reference/data-types/string)) — Сейчас не используется.
* `is_visible` ([String](/ru/reference/data-types/string)) — Сейчас не используется.
* `expression` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — Сейчас не используется.

**Пример**

```sql title="Query" theme={null}
SELECT table_catalog,
       table_schema,
       table_name,
       column_name,
       ordinal_position,
       column_default,
       is_nullable,
       data_type,
       character_maximum_length,
       character_octet_length,
       numeric_precision,
       numeric_precision_radix,
       numeric_scale,
       datetime_precision,
       character_set_catalog,
       character_set_schema,
       character_set_name,
       collation_catalog,
       collation_schema,
       collation_name,
       domain_catalog,
       domain_schema,
       domain_name,
       column_comment,
       column_type
FROM INFORMATION_SCHEMA.COLUMNS
WHERE (table_schema = currentDatabase() OR table_schema = '')
  AND table_name NOT LIKE '%inner%' 
LIMIT 1 
FORMAT Vertical;
```

```text title="Response" theme={null}
Row 1:
──────
table_catalog:            default
table_schema:             default
table_name:               describe_example
column_name:              id
ordinal_position:         1
column_default:
is_nullable:              0
data_type:                UInt64
character_maximum_length: ᴺᵁᴸᴸ
character_octet_length:   ᴺᵁᴸᴸ
numeric_precision:        64
numeric_precision_radix:  2
numeric_scale:            0
datetime_precision:       ᴺᵁᴸᴸ
character_set_catalog:    ᴺᵁᴸᴸ
character_set_schema:     ᴺᵁᴸᴸ
character_set_name:       ᴺᵁᴸᴸ
collation_catalog:        ᴺᵁᴸᴸ
collation_schema:         ᴺᵁᴸᴸ
collation_name:           ᴺᵁᴸᴸ
domain_catalog:           ᴺᵁᴸᴸ
domain_schema:            ᴺᵁᴸᴸ
domain_name:              ᴺᵁᴸᴸ
```

<div id="schemata">
  ## SCHEMATA
</div>

Содержит столбцы из системной таблицы [system.databases](/ru/reference/system-tables/databases), а также столбцы, которые не поддерживаются в ClickHouse или не имеют смысла (всегда `NULL`), но требуются стандартом.

Столбцы:

* `catalog_name` ([String](/ru/reference/data-types/string)) — Имя базы данных.
* `schema_name` ([String](/ru/reference/data-types/string)) — Имя базы данных.
* `schema_owner` ([String](/ru/reference/data-types/string)) — Имя владельца схемы, всегда `'default'`.
* `default_character_set_catalog` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — `NULL`, не поддерживается.
* `default_character_set_schema` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — `NULL`, не поддерживается.
* `default_character_set_name` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — `NULL`, не поддерживается.
* `sql_path` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — `NULL`, не поддерживается.

**Пример**

```sql title="Query" theme={null}
SELECT catalog_name,
       schema_name,
       schema_owner,
       default_character_set_catalog,
       default_character_set_schema,
       default_character_set_name,
       sql_path
FROM information_schema.schemata
WHERE schema_name ILIKE 'information_schema' 
LIMIT 1 
FORMAT Vertical;
```

```text title="Response" theme={null}
Row 1:
──────
catalog_name:                  INFORMATION_SCHEMA
schema_name:                   INFORMATION_SCHEMA
schema_owner:                  default
default_character_set_catalog: ᴺᵁᴸᴸ
default_character_set_schema:  ᴺᵁᴸᴸ
default_character_set_name:    ᴺᵁᴸᴸ
sql_path:                      ᴺᵁᴸᴸ
```

<div id="tables">
  ## TABLES
</div>

Содержит столбцы из системной таблицы [system.tables](/ru/reference/system-tables/tables).

Столбцы:

* `table_catalog` ([String](/ru/reference/data-types/string)) — Имя базы данных, в которой находится таблица.
* `table_schema` ([String](/ru/reference/data-types/string)) — Имя базы данных, в которой находится таблица.
* `table_name` ([String](/ru/reference/data-types/string)) — Имя таблицы.
* `table_type` ([String](/ru/reference/data-types/string)) — Тип таблицы. Возможные значения:
  * `BASE TABLE`
  * `VIEW`
  * `FOREIGN TABLE`
  * `LOCAL TEMPORARY`
  * `SYSTEM VIEW`
* `table_rows` ([Nullable](/ru/reference/data-types/nullable)([UInt64](/ru/reference/data-types/int-uint))) — Общее количество строк. NULL, если его не удалось определить.
* `data_length` ([Nullable](/ru/reference/data-types/nullable)([UInt64](/ru/reference/data-types/int-uint))) — Размер данных на диске. NULL, если его не удалось определить.
* `index_length` ([Nullable](/ru/reference/data-types/nullable)([UInt64](/ru/reference/data-types/int-uint))) — Общий размер первичного ключа, вторичных индексов и всех marks.
* `table_collation` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — collation таблицы по умолчанию. Всегда `utf8mb4_0900_ai_ci`.
* `table_comment` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — Комментарий, используемый при создании таблицы.

**Пример**

```sql title="Query" theme={null}
SELECT table_catalog, 
       table_schema, 
       table_name, 
       table_type, 
       table_collation, 
       table_comment
FROM INFORMATION_SCHEMA.TABLES
WHERE (table_schema = currentDatabase() OR table_schema = '')
  AND table_name NOT LIKE '%inner%'
LIMIT 1 
FORMAT Vertical;
```

```text title="Response" theme={null}
Row 1:
──────
table_catalog:   default
table_schema:    default
table_name:      describe_example
table_type:      BASE TABLE
table_collation: utf8mb4_0900_ai_ci
table_comment:   
```

<div id="views">
  ## VIEWS
</div>

Содержит столбцы из системной таблицы [system.tables](/ru/reference/system-tables/tables), считываемые при использовании движка таблицы [View](/ru/reference/engines/table-engines/special/view).

Столбцы:

* `table_catalog` ([String](/ru/reference/data-types/string)) — Имя базы данных, в которой находится таблица.
* `table_schema` ([String](/ru/reference/data-types/string)) — Имя базы данных, в которой находится таблица.
* `table_name` ([String](/ru/reference/data-types/string)) — Имя таблицы.
* `view_definition` ([String](/ru/reference/data-types/string)) — `SELECT`-запрос для представления.
* `check_option` ([String](/ru/reference/data-types/string)) — `NONE`, без проверки.
* `is_updatable` ([Enum8](/ru/reference/data-types/enum)) — `NO`, представление не обновляется.
* `is_insertable_into` ([Enum8](/ru/reference/data-types/enum)) — Показывает, является ли созданное представление [материализованным](/ru/reference/statements/create/view#materialized-view). Возможные значения:
  * `NO` — Созданное представление не является материализованным.
  * `YES` — Созданное представление является материализованным.
* `is_trigger_updatable` ([Enum8](/ru/reference/data-types/enum)) — `NO`, триггер не обновляется.
* `is_trigger_deletable` ([Enum8](/ru/reference/data-types/enum)) — `NO`, триггер не удаляется.
* `is_trigger_insertable_into` ([Enum8](/ru/reference/data-types/enum)) — `NO`, вставка данных в триггер не выполняется.

**Пример**

```sql title="Query" theme={null}
CREATE VIEW v (n Nullable(Int32), f Float64) AS SELECT n, f FROM t;
CREATE MATERIALIZED VIEW mv ENGINE = Null AS SELECT * FROM system.one;
SELECT table_catalog,
       table_schema,
       table_name,
       view_definition,
       check_option,
       is_updatable,
       is_insertable_into,
       is_trigger_updatable,
       is_trigger_deletable,
       is_trigger_insertable_into
FROM information_schema.views
WHERE table_schema = currentDatabase() 
LIMIT 1
FORMAT Vertical;
```

```text title="Response" theme={null}
Row 1:
──────
table_catalog:              default
table_schema:               default
table_name:                 mv
view_definition:            SELECT * FROM system.one
check_option:               NONE
is_updatable:               NO
is_insertable_into:         YES
is_trigger_updatable:       NO
is_trigger_deletable:       NO
is_trigger_insertable_into: NO
```

<div id="key_column_usage">
  ## KEY\_COLUMN\_USAGE
</div>

Содержит столбцы из системной таблицы [system.tables](/ru/reference/system-tables/tables), для которых заданы ограничения.

Столбцы:

* `constraint_catalog` ([String](/ru/reference/data-types/string)) — В настоящее время не используется. Всегда `def`.
* `constraint_schema` ([String](/ru/reference/data-types/string)) — Имя схемы (database), к которой относится ограничение.
* `constraint_name` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — Имя ограничения.
* `table_catalog` ([String](/ru/reference/data-types/string)) — В настоящее время не используется. Всегда `def`.
* `table_schema` ([String](/ru/reference/data-types/string)) — Имя схемы (database), к которой относится таблица.
* `table_name` ([String](/ru/reference/data-types/string)) — Имя таблицы, для которой задано ограничение.
* `column_name` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — Имя столбца, для которого задано ограничение.
* `ordinal_position` ([UInt32](/ru/reference/data-types/int-uint)) — В настоящее время не используется. Всегда `1`.
* `position_in_unique_constraint` ([Nullable](/ru/reference/data-types/nullable)([UInt32](/ru/reference/data-types/int-uint))) — В настоящее время не используется. Всегда `NULL`.
* `referenced_table_schema` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — В настоящее время не используется. Всегда `NULL`.
* `referenced_table_name` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — В настоящее время не используется. Всегда `NULL`.
* `referenced_column_name` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — В настоящее время не используется. Всегда `NULL`.

**Пример**

```sql title="Query" theme={null}
CREATE TABLE test (i UInt32, s String) ENGINE MergeTree ORDER BY i;
SELECT constraint_catalog,
       constraint_schema,
       constraint_name,
       table_catalog,
       table_schema,
       table_name,
       column_name,
       ordinal_position,
       position_in_unique_constraint,
       referenced_table_schema,
       referenced_table_name,
       referenced_column_name
FROM information_schema.key_column_usage 
WHERE table_name = 'test' 
FORMAT Vertical;
```

```response title="Response" theme={null}
Row 1:
──────
constraint_catalog:            def
constraint_schema:             default
constraint_name:               PRIMARY
table_catalog:                 def
table_schema:                  default
table_name:                    test
column_name:                   i
ordinal_position:              1
position_in_unique_constraint: ᴺᵁᴸᴸ
referenced_table_schema:       ᴺᵁᴸᴸ
referenced_table_name:         ᴺᵁᴸᴸ
referenced_column_name:        ᴺᵁᴸᴸ
```

<div id="referential_constraints">
  ## REFERENTIAL\_CONSTRAINTS
</div>

Содержит информацию о внешних ключах. В настоящее время возвращает пустой результат (без строк), чего достаточно для совместимости со сторонними инструментами, такими как Tableau Online.

Столбцы:

* `constraint_catalog` ([String](/ru/reference/data-types/string)) — В настоящее время не используется.
* `constraint_schema` ([String](/ru/reference/data-types/string)) — В настоящее время не используется.
* `constraint_name` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — В настоящее время не используется.
* `unique_constraint_catalog` ([String](/ru/reference/data-types/string)) — В настоящее время не используется.
* `unique_constraint_schema` ([String](/ru/reference/data-types/string)) — В настоящее время не используется.
* `unique_constraint_name` ([Nullable](/ru/reference/data-types/nullable)([String](/ru/reference/data-types/string))) — В настоящее время не используется.
* `match_option` ([String](/ru/reference/data-types/string)) — В настоящее время не используется.
* `update_rule` ([String](/ru/reference/data-types/string)) — В настоящее время не используется.
* `delete_rule` ([String](/ru/reference/data-types/string)) — В настоящее время не используется.
* `table_name` ([String](/ru/reference/data-types/string)) — В настоящее время не используется.
* `referenced_table_name` ([String](/ru/reference/data-types/string)) — В настоящее время не используется.

<div id="statistics">
  ## STATISTICS
</div>

Предоставляет информацию об индексах таблицы. В настоящее время возвращает пустой результат (ни одной строки), чего достаточно для совместимости со сторонними инструментами, такими как Tableau Online.
