Перейти к основному содержимому
Перейти к основному содержимому

Инструкции SHOW

примечание

SHOW CREATE (TABLE|DATABASE|USER) скрывает секреты, если следующие настройки не включены:

Кроме того, у пользователя должен быть привилегия displaySecretsInShowAndSelect.

SHOW CREATE TABLE | DICTIONARY | VIEW | DATABASE

Эти инструкции возвращают одну колонку типа String, содержащую запрос CREATE, используемый для создания указанного объекта.

Синтаксис

SHOW [CREATE] TABLE | TEMPORARY TABLE | DICTIONARY | VIEW | DATABASE [db.]table|view [INTO OUTFILE filename] [FORMAT format]
примечание

Если вы используете эту инструкцию для получения запроса CREATE системных таблиц, вы получите фальшивый запрос, который только объявляет структуру таблицы, но не может быть использован для создания таблицы.

SHOW DATABASES

Эта инструкция выводит список всех баз данных.

Синтаксис

SHOW DATABASES [[NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE filename] [FORMAT format]

Он идентичен запросу:

SELECT name FROM system.databases [WHERE name [NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE filename] [FORMAT format]

Примеры

В этом примере мы используем SHOW для получения имен баз данных, содержащих последовательность символов 'de' в их именах:

SHOW DATABASES LIKE '%de%'
┌─name────┐
│ default │
└─────────┘

Мы также можем сделать это нечувствительным к регистру:

SHOW DATABASES ILIKE '%DE%'
┌─name────┐
│ default │
└─────────┘

Или получить имена баз данных, которые не содержат 'de' в своих именах:

SHOW DATABASES NOT LIKE '%de%'
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ system                         │
│ test                           │
│ tutorial                       │
└────────────────────────────────┘

Наконец, мы можем получить имена только первых двух баз данных:

SHOW DATABASES LIMIT 2
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default                        │
└────────────────────────────────┘

См. также

SHOW TABLES

Инструкция SHOW TABLES отображает список таблиц.

Синтаксис

SHOW [FULL] [TEMPORARY] TABLES [{FROM | IN} <db>] [[NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]

ЕслиClause FROM не указано, запрос возвращает список таблиц из текущей базы данных.

Эта инструкция идентична запросу:

SELECT name FROM system.tables [WHERE name [NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]

Примеры

В этом примере мы используем инструкцию SHOW TABLES, чтобы найти все таблицы, содержащие 'user' в своих именах:

SHOW TABLES FROM system LIKE '%user%'
┌─name─────────────┐
│ user_directories │
│ users            │
└──────────────────┘

Мы также можем сделать это нечувствительным к регистру:

SHOW TABLES FROM system ILIKE '%USER%'
┌─name─────────────┐
│ user_directories │
│ users            │
└──────────────────┘

Или найти таблицы, которые не содержат букву 's' в своих именах:

SHOW TABLES FROM system NOT LIKE '%s%'
┌─name─────────┐
│ metric_log   │
│ metric_log_0 │
│ metric_log_1 │
└──────────────┘

Наконец, мы можем получить имена только первых двух таблиц:

SHOW TABLES FROM system LIMIT 2
┌─name───────────────────────────┐
│ aggregate_function_combinators │
│ asynchronous_metric_log        │
└────────────────────────────────┘

См. также

SHOW COLUMNS

Инструкция SHOW COLUMNS отображает список колонок.

Синтаксис

SHOW [EXTENDED] [FULL] COLUMNS {FROM | IN} <table> [{FROM | IN} <db>] [{[NOT] {LIKE | ILIKE} '<pattern>' | WHERE <expr>}] [LIMIT <N>] [INTO
OUTFILE <filename>] [FORMAT <format>]

Имя базы данных и таблицы может быть указано в сокращенной форме как <db>.<table>, что означает, что FROM tab FROM db и FROM db.tab эквивалентны. Если база данных не указана, запрос возвращает список колонок из текущей базы данных.

Существуют также два необязательных ключевых слова: EXTENDED и FULL. Ключевое слово EXTENDED в данный момент не имеет эффекта и существует для совместимости с MySQL. Ключевое слово FULL заставляет вывод включать колонки сортировки, комментарий и колонку привилегий.

Инструкция SHOW COLUMNS производит результирующую таблицу со следующей структурой:

КолонкаОписаниеТип
fieldИмя колонкиString
typeТип данных колонки. Если запрос был сделан через протокол MySQL, то отображается соответствующее имя типа в MySQL.String
nullYES, если тип данных колонки допускает значения NULL, NO в противном случаеString
keyPRI, если колонка является частью первичного ключа, SOR, если колонка является частью ключа сортировки, в остальных случаях пустоString
defaultВыражение по умолчанию для колонки, если она типа ALIAS, DEFAULT или MATERIALIZED, в противном случае NULL.Nullable(String)
extraДополнительная информация, в данный момент не используетсяString
collation(только если указано ключевое слово FULL) Сортировка колонки, всегда NULL, так как ClickHouse не поддерживает сортировку по колонкамNullable(String)
comment(только если указано ключевое слово FULL) Комментарий к колонкеString
privilege(только если указано ключевое слово FULL) Привилегия, которую вы имеете на этой колонке, в данный момент недоступнаString

Примеры

В этом примере мы используем инструкцию SHOW COLUMNS, чтобы получить информацию обо всех колонках в таблице 'orders', начиная с 'delivery_':

SHOW COLUMNS FROM 'orders' LIKE 'delivery_%'
┌─field───────────┬─type─────┬─null─┬─key─────┬─default─┬─extra─┐
│ delivery_date   │ DateTime │    0 │ PRI SOR │ ᴺᵁᴸᴸ    │       │
│ delivery_status │ Bool     │    0 │         │ ᴺᵁᴸᴸ    │       │
└─────────────────┴──────────┴──────┴─────────┴─────────┴───────┘

См. также

SHOW DICTIONARIES

Инструкция SHOW DICTIONARIES отображает список Словарей.

Синтаксис

SHOW DICTIONARIES [FROM <db>] [LIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]

ЕслиClause FROM не указано, запрос возвращает список словарей из текущей базы данных.

Вы можете получить те же результаты, что и запрос SHOW DICTIONARIES, следующим образом:

SELECT name FROM system.dictionaries WHERE database = <db> [AND name LIKE <pattern>] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]

Примеры

Следующий запрос выбирает первые две строки из списка таблиц в базе данных system, имена которых содержат reg.

SHOW DICTIONARIES FROM db LIKE '%reg%' LIMIT 2
┌─name─────────┐
│ regions      │
│ region_names │
└──────────────┘

SHOW INDEX

Отображает список первичных индексов и индексов пропуска данных таблицы.

Эта инструкция в основном существует для совместимости с MySQL. Системные таблицы system.tables (для первичных ключей) и system.data_skipping_indices (для индексов пропуска данных) предоставляют эквивалентную информацию, но в более родном формате для ClickHouse.

Синтаксис

SHOW [EXTENDED] {INDEX | INDEXES | INDICES | KEYS } {FROM | IN} <table> [{FROM | IN} <db>] [WHERE <expr>] [INTO OUTFILE <filename>] [FORMAT <format>]

Имя базы данных и таблицы может быть указано в сокращенной форме как <db>.<table>, то есть FROM tab FROM db и FROM db.tab эквивалентны. Если база данных не указана, запрос предполагает текущую базу данных как базу данных.

Необязательное ключевое слово EXTENDED в данный момент не имеет эффекта и существует для совместимости с MySQL.

Инструкция produces результирующую таблицу со следующей структурой:

КолонкаОписаниеТип
tableИмя таблицы.String
non_uniqueВсегда 1, так как ClickHouse не поддерживает ограничения уникальности.UInt8
key_nameИмя индекса, PRIMARY, если индекс является первичным ключом.String
seq_in_indexДля индекса первичного ключа, позиция колонки, начиная с 1. Для индекса пропуска данных: всегда 1.UInt8
column_nameДля индекса первичного ключа, имя колонки. Для индекса пропуска данных: '' (пустая строка), см. поле "expression".String
collationСортировка колонки в индексе: A, если по возрастанию, D, если по убыванию, NULL, если не отсортировано.Nullable(String)
cardinalityОценка кардинальности индекса (число уникальных значений в индексе). В данный момент всегда 0.UInt64
sub_partВсегда NULL, так как ClickHouse не поддерживает префиксы индекса, как MySQL.Nullable(String)
packedВсегда NULL, поскольку ClickHouse не поддерживает упакованные индексы (как MySQL).Nullable(String)
nullВ данный момент не используется
index_typeТип индекса, например, PRIMARY, MINMAX, BLOOM_FILTER и т.д.String
commentДополнительная информация о индексе, в данный момент всегда '' (пустая строка).String
index_comment'' (пустая строка), потому что индексы в ClickHouse не могут иметь поле COMMENT (как в MySQL).String
visibleЕсли индекс виден оптимизатору, всегда YES.String
expressionДля индекса пропуска данных, выражение индекса. Для индекса первичного ключа: '' (пустая строка).String

Примеры

В этом примере мы используем инструкцию SHOW INDEX, чтобы получить информацию обо всех индексах в таблице 'tbl':

SHOW INDEX FROM 'tbl'
┌─table─┬─non_unique─┬─key_name─┬─seq_in_index─┬─column_name─┬─collation─┬─cardinality─┬─sub_part─┬─packed─┬─null─┬─index_type───┬─comment─┬─index_comment─┬─visible─┬─expression─┐
│ tbl   │          1 │ blf_idx  │ 1            │ 1           │ ᴺᵁᴻᴻ      │ 0           │ ᴺᵁᴻᴻ     │ ᴺᵁᴻᴻ   │ ᴺᵁᴻᴻ │ BLOOM_FILTER │         │               │ YES     │ d, b       │
│ tbl   │          1 │ mm1_idx  │ 1            │ 1           │ ᴺᵁᴻᴻ      │ 0           │ ᴺᵁᴻᴻ     │ ᴺᵁᴻᴻ   │ ᴺᵁᴻᴻ │ MINMAX       │         │               │ YES     │ a, c, d    │
│ tbl   │          1 │ mm2_idx  │ 1            │ 1           │ ᴺᵁᴻᴻ      │ 0           │ ᴺᵁᴻᴻ     │ ᴺᵁᴻᴻ   │ ᴺᵁᴻᴻ │ MINMAX       │         │               │ YES     │ c, d, e    │
│ tbl   │          1 │ PRIMARY  │ 1            │ c           │ A         │ 0           │ ᴺᵁᴻᴻ     │ ᴺᵁᴻᴻ   │ ᴺᵁᴻᴻ │ PRIMARY      │         │               │ YES     │            │
│ tbl   │          1 │ PRIMARY  │ 2            │ a           │ A         │ 0           │ ᴺᵁᴻᴻ     │ ᴺᵁᴻᴻ   │ ᴺᵁᴻᴻ │ PRIMARY      │         │               │ YES     │            │
│ tbl   │          1 │ set_idx  │ 1            │ 1           │ ᴺᵁᴻᴻ      │ 0           │ ᴺᵁᴻᴻ     │ ᴺᵁᴻᴻ   │ ᴺᵁᴻᴻ │ SET          │         │               │ YES     │ e          │
└───────┴────────────┴──────────┴──────────────┴─────────────┴───────────┴─────────────┴──────────┴────────┴──────┴──────────────┴─────────┴───────────────┴─────────┴────────────┘

См. также

SHOW PROCESSLIST

Выводит содержимое таблицы system.processes, которая содержит список запросов, которые в данный момент обрабатываются, исключая запросы SHOW PROCESSLIST.

Синтаксис

SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]

Запрос SELECT * FROM system.processes возвращает данные обо всех текущих запросах.

подсказка

Выполните в консоли:

$ watch -n1 "clickhouse-client --query='SHOW PROCESSLIST'"

SHOW GRANTS

Инструкция SHOW GRANTS показывает привилегии для пользователя.

Синтаксис

SHOW GRANTS [FOR user1 [, user2 ...]] [WITH IMPLICIT] [FINAL]

Если пользователь не указан, запрос возвращает привилегии для текущего пользователя.

Модификатор WITH IMPLICIT позволяет показывать неявные привилегии (например, GRANT SELECT ON system.one)

Модификатор FINAL объединяет все привилегии пользователя и его доверенных ролей (с наследованием)

SHOW CREATE USER

Инструкция SHOW CREATE USER показывает параметры, которые использовались при создании пользователя.

Синтаксис

SHOW CREATE USER [name1 [, name2 ...] | CURRENT_USER]

SHOW CREATE ROLE

Инструкция SHOW CREATE ROLE показывает параметры, которые использовались при создании роли.

Синтаксис

SHOW CREATE ROLE name1 [, name2 ...]

SHOW CREATE ROW POLICY

Инструкция SHOW CREATE ROW POLICY показывает параметры, которые использовались при создании политики строк.

Синтаксис

SHOW CREATE [ROW] POLICY name ON [database1.]table1 [, [database2.]table2 ...]

SHOW CREATE QUOTA

Инструкция SHOW CREATE QUOTA показывает параметры, которые использовались при создании квоты.

Синтаксис

SHOW CREATE QUOTA [name1 [, name2 ...] | CURRENT]

SHOW CREATE SETTINGS PROFILE

Инструкция SHOW CREATE SETTINGS PROFILE показывает параметры, которые использовались при создании профиля настроек.

Синтаксис

SHOW CREATE [SETTINGS] PROFILE name1 [, name2 ...]

SHOW USERS

Инструкция SHOW USERS возвращает список имен учетных записей пользователей. Чтобы просмотреть параметры учетных записей пользователей, смотрите системную таблицу system.users.

Синтаксис

SHOW USERS

SHOW ROLES

Инструкция SHOW ROLES возвращает список ролей. Чтобы просмотреть другие параметры, смотрите системные таблицы system.roles и system.role_grants.

Синтаксис

SHOW [CURRENT|ENABLED] ROLES

SHOW PROFILES

Инструкция SHOW PROFILES возвращает список профилей настроек. Чтобы просмотреть параметры учетных записей пользователей, смотрите системную таблицу settings_profiles.

Синтаксис

SHOW [SETTINGS] PROFILES

SHOW POLICIES

Инструкция SHOW POLICIES возвращает список политик строк для указанной таблицы. Чтобы просмотреть параметры учетных записей пользователей, смотрите системную таблицу system.row_policies.

Синтаксис

SHOW [ROW] POLICIES [ON [db.]table]

SHOW QUOTAS

Инструкция SHOW QUOTAS возвращает список квот. Чтобы просмотреть параметры квот, смотрите системную таблицу system.quotas.

Синтаксис

SHOW QUOTAS

SHOW QUOTA

Инструкция SHOW QUOTA возвращает потребление квоты для всех пользователей или для текущего пользователя. Чтобы просмотреть другие параметры, смотрите системные таблицы system.quotas_usage и system.quota_usage.

Синтаксис

SHOW [CURRENT] QUOTA

SHOW ACCESS

Инструкция SHOW ACCESS показывает всех пользователей, ролей, профилей и т.д. и все их привилегии.

Синтаксис

SHOW ACCESS

SHOW CLUSTER(S)

Инструкция SHOW CLUSTER(S) возвращает список кластеров. Все доступные кластеры перечислены в таблице system.clusters.

примечание

Запрос SHOW CLUSTER name отображает cluster, shard_num, replica_num, host_name, host_address и port таблицы system.clusters для указанного имени кластера.

Синтаксис

SHOW CLUSTER '<name>'
SHOW CLUSTERS [[NOT] LIKE|ILIKE '<pattern>'] [LIMIT <N>]

Примеры

SHOW CLUSTERS;
┌─cluster──────────────────────────────────────┐
│ test_cluster_two_shards                      │
│ test_cluster_two_shards_internal_replication │
│ test_cluster_two_shards_localhost            │
│ test_shard_localhost                         │
│ test_shard_localhost_secure                  │
│ test_unavailable_shard                       │
└──────────────────────────────────────────────┘
SHOW CLUSTERS LIKE 'test%' LIMIT 1;
┌─cluster─────────────────┐
│ test_cluster_two_shards │
└─────────────────────────┘
SHOW CLUSTER 'test_shard_localhost' FORMAT Vertical;
Row 1:
──────
cluster:                 test_shard_localhost
shard_num:               1
replica_num:             1
host_name:               localhost
host_address:            127.0.0.1
port:                    9000

SHOW SETTINGS

Инструкция SHOW SETTINGS возвращает список системных настроек и их значений. Она выбирает данные из таблицы system.settings.

Синтаксис

SHOW [CHANGED] SETTINGS LIKE|ILIKE <name>

Условия

LIKE|ILIKE позволяют указать шаблон сопоставления для имени настройки. Он может содержать шаблоны, такие как % или _. Условие LIKE чувствительно к регистру, ILIKE — нечувствительно.

Когда используется условие CHANGED, запрос возвращает только настройки, измененные с их значений по умолчанию.

Примеры

Запрос с условием LIKE:

SHOW SETTINGS LIKE 'send_timeout';
┌─name─────────┬─type────┬─value─┐
│ send_timeout │ Seconds │ 300   │
└──────────────┴─────────┴───────┘

Запрос с условием ILIKE:

SHOW SETTINGS ILIKE '%CONNECT_timeout%'
┌─name────────────────────────────────────┬─type─────────┬─value─┐
│ connect_timeout                         │ Seconds      │ 10    │
│ connect_timeout_with_failover_ms        │ Milliseconds │ 50    │
│ connect_timeout_with_failover_secure_ms │ Milliseconds │ 100   │
└─────────────────────────────────────────┴──────────────┴───────┘

Запрос с условием CHANGED:

SHOW CHANGED SETTINGS ILIKE '%MEMORY%'
┌─name─────────────┬─type───┬─value───────┐
│ max_memory_usage │ UInt64 │ 10000000000 │
└──────────────────┴────────┴─────────────┘

SHOW SETTING

Инструкция SHOW SETTING выводит значение настройки для указанного имени настройки.

Синтаксис

SHOW SETTING <name>

См. также

SHOW FILESYSTEM CACHES

Примеры

SHOW FILESYSTEM CACHES
┌─Caches────┐
│ s3_cache  │
└───────────┘

См. также

SHOW ENGINES

Инструкция SHOW ENGINES выводит содержимое таблицы system.table_engines, которая содержит описание движков таблиц, поддерживаемых сервером, и информацию о поддерживаемых ими функциях.

Синтаксис

SHOW ENGINES [INTO OUTFILE filename] [FORMAT format]

См. также

SHOW FUNCTIONS

Инструкция SHOW FUNCTIONS выводит содержимое таблицы system.functions.

Синтаксис

SHOW FUNCTIONS [LIKE | ILIKE '<pattern>']

Если указано либо условие LIKE, либо условие ILIKE, запрос возвращает список системных функций, имена которых соответствуют предоставленному <pattern>.

См. также

SHOW MERGES

Инструкция SHOW MERGES возвращает список слияний. Все слияния перечислены в таблице system.merges:

КолонкаОписание
tableИмя таблицы.
databaseИмя базы данных, в которой находится таблица.
estimate_completeОценочное время завершения (в секундах).
elapsedВремя, прошедшее (в секундах) с момента начала слияния.
progressПроцент завершенной работы (0-100 процентов).
is_mutation1, если этот процесс является частью мутации.
size_compressedОбщий размер сжатых данных объединенных частей.
memory_usageПотребление памяти процесса слияния.

Синтаксис

SHOW MERGES [[NOT] LIKE|ILIKE '<table_name_pattern>'] [LIMIT <N>]

Примеры

SHOW MERGES;
┌─table──────┬─database─┬─estimate_complete─┬─elapsed─┬─progress─┬─is_mutation─┬─size_compressed─┬─memory_usage─┐
│ your_table │ default  │              0.14 │    0.36 │    73.01 │           0 │        5.40 MiB │    10.25 MiB │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘
SHOW MERGES LIKE 'your_t%' LIMIT 1;
┌─table──────┬─database─┬─estimate_complete─┬─elapsed─┬─progress─┬─is_mutation─┬─size_compressed─┬─memory_usage─┐
│ your_table │ default  │              0.14 │    0.36 │    73.01 │           0 │        5.40 MiB │    10.25 MiB │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘