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

Операторы 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 '<шаблон>'] [LIMIT <N>] [INTO OUTFILE <имя_файла>] [FORMAT <формат>]

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

Данный оператор эквивалентен следующему запросу:

SELECT name FROM system.tables [WHERE name [NOT] LIKE | ILIKE '<шаблон>'] [LIMIT <N>] [INTO OUTFILE <имя_файла>] [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 приводит к тому, что в вывод включаются столбцы с информацией о сортировке (collation), комментариях и правах доступа.

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

ColumnDescriptionType
fieldИмя столбцаString
typeТип данных столбца. Если запрос был выполнен по протоколу MySQL wire, то отображается эквивалентное имя типа в MySQL.String
nullYES, если тип данных столбца Nullable, иначе NOString
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>]

Если предложение 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.

Оператор возвращает результирующую таблицу со следующей структурой:

ColumnDescriptionType
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 [имя1 [, имя2 ...] | CURRENT_USER]

SHOW CREATE ROLE

Оператор SHOW CREATE ROLE выводит параметры, использованные при создании роли.

Синтаксис

SHOW CREATE ROLE имя1 [, имя2 ...]

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 имя1 [, имя2 ...]

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 <имя>

Условия

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                         │ Секунды      │ 10    │
│ connect_timeout_with_failover_ms        │ Миллисекунды │ 50    │
│ connect_timeout_with_failover_secure_ms │ Миллисекунды │ 100   │
└─────────────────────────────────────────┴──────────────┴───────┘

Запрос с предложением CHANGED:

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

SHOW SETTING

Оператор SHOW SETTING выводит значение указанной настройки.

Синтаксис

SHOW SETTING <имя>

См. также

Просмотр кэшей файловой системы

Примеры

SHOW FILESYSTEM CACHES
┌─Кэши──────┐
│ s3_cache  │
└───────────┘

См. также

SHOW ENGINES

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

Синтаксис

SHOW ENGINES [INTO OUTFILE имя_файла] [FORMAT формат]

См. также

SHOW FUNCTIONS

Оператор SHOW FUNCTIONS выводит содержимое таблицы system.functions.

Синтаксис

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

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

См. также

SHOW MERGES

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

ColumnDescription
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 │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘