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

Инструкции 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>]

Если предложение 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 производит таблицу результата со следующей структурой:

ColumnDescriptionType
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>]

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

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