Skip to main content
Skip to main content

SHOW Statements

Note

SHOW CREATE (TABLE|DATABASE|USER) hides secrets unless the following settings are turned on:

Additionally, the user should have the displaySecretsInShowAndSelect privilege.

SHOW CREATE TABLE | DICTIONARY | VIEW | DATABASE

These statements return a single column of type String, containing the CREATE query used for creating the specified object.

Syntax

Syntax
SHOW [CREATE] [TEMPORARY] TABLE|DICTIONARY|VIEW|DATABASE [db.]table|view [INTO OUTFILE filename] [FORMAT format]

SHOW TABLE t and SHOW DATABASE db have the same meaning as SHOW CREATE TABLE|DATABASE t|db, but SHOW t and SHOW db are not supported.

Note

if you use this statement to get the CREATE query of system tables, you will get a fake query, which only declares the table structure, but cannot be used to create a table.

SHOW DATABASES

This statement prints a list of all databases.

Syntax

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

It is identical to the query:

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

Examples

In this example we use SHOW to obtain database names containing the symbol sequence 'de' in their names:

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

We can also do so in a case-insensitive manner:

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

Or get database names which do not contain 'de' in their names:

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

Finally, we can get the names of only the first two databases:

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

See also

SHOW TABLES

The SHOW TABLES statement displays a list of tables.

Syntax

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

If the FROM clause is not specified, the query returns a list of tables from the current database.

This statement is identical to the query:

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

Examples

In this example we use the SHOW TABLES statement to find all tables containing 'user' in their names:

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

We can also do so in a case-insensitive manner:

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

Or to find tables which don't contain the letter 's' in their names:

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

Finally, we can get the names of only the first two tables:

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

See also

SHOW COLUMNS

The SHOW COLUMNS statement displays a list of columns.

Syntax

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

The database and table name can be specified in abbreviated form as <db>.<table>, meaning that FROM tab FROM db and FROM db.tab are equivalent. If no database is specified, the query returns the list of columns from the current database.

There are also two optional keywords: EXTENDED and FULL. The EXTENDED keyword currently has no effect, and exists for MySQL compatibility. The FULL keyword causes the output to include the collation, comment and privilege columns.

The SHOW COLUMNS statement produces a result table with the following structure:

ColumnDescriptionType
fieldThe name of the columnString
typeThe column data type. If the query was made through the MySQL wire protocol, then the equivalent type name in MySQL is shown.String
nullYES if the column data type is Nullable, NO otherwiseString
keyPRI if the column is part of the primary key, SOR if the column is part of the sorting key, empty otherwiseString
defaultDefault expression of the column if it is of type ALIAS, DEFAULT, or MATERIALIZED, otherwise NULL.Nullable(String)
extraAdditional information, currently unusedString
collation(only if FULL keyword was specified) Collation of the column, always NULL because ClickHouse has no per-column collationsNullable(String)
comment(only if FULL keyword was specified) Comment on the columnString
privilege(only if FULL keyword was specified) The privilege you have on this column, currently not availableString

Examples

In this example we'll use the SHOW COLUMNS statement to get information about all columns in table 'orders', starting from 'delivery_':

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

See also

SHOW DICTIONARIES

The SHOW DICTIONARIES statement displays a list of Dictionaries.

Syntax

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

If the FROM clause is not specified, the query returns the list of dictionaries from the current database.

You can get the same results as the SHOW DICTIONARIES query in the following way:

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

Examples

The following query selects the first two rows from the list of tables in the system database, whose names contain reg.

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

SHOW INDEX

Displays a list of primary and data skipping indexes of a table.

This statement mostly exists for compatibility with MySQL. System tables system.tables (for primary keys) and system.data_skipping_indices (for data skipping indices) provide equivalent information but in a fashion more native to ClickHouse.

Syntax

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

The database and table name can be specified in abbreviated form as <db>.<table>, i.e. FROM tab FROM db and FROM db.tab are equivalent. If no database is specified, the query assumes the current database as database.

The optional keyword EXTENDED currently has no effect, and exists for MySQL compatibility.

The statement produces a result table with the following structure:

ColumnDescriptionType
tableThe name of the table.String
non_uniqueAlways 1 as ClickHouse does not support uniqueness constraints.UInt8
key_nameThe name of the index, PRIMARY if the index is a primary key index.String
seq_in_indexFor a primary key index, the position of the column starting from 1. For a data skipping index: always 1.UInt8
column_nameFor a primary key index, the name of the column. For a data skipping index: '' (empty string), see field "expression".String
collationThe sorting of the column in the index: A if ascending, D if descending, NULL if unsorted.Nullable(String)
cardinalityAn estimation of the index cardinality (number of unique values in the index). Currently always 0.UInt64
sub_partAlways NULL because ClickHouse does not support index prefixes like MySQL.Nullable(String)
packedAlways NULL because ClickHouse does not support packed indexes (like MySQL).Nullable(String)
nullCurrently unused
index_typeThe index type, e.g. PRIMARY, MINMAX, BLOOM_FILTER etc.String
commentAdditional information about the index, currently always '' (empty string).String
index_comment'' (empty string) because indexes in ClickHouse cannot have a COMMENT field (like in MySQL).String
visibleIf the index is visible to the optimizer, always YES.String
expressionFor a data skipping index, the index expression. For a primary key index: '' (empty string).String

Examples

In this example we use the SHOW INDEX statement to get information about all indexes in table 'tbl'

Query
SHOW INDEX FROM 'tbl'
Response
┌─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 │
└───────┴────────────┴──────────┴──────────────┴─────────────┴───────────┴─────────────┴──────────┴────────┴──────┴──────────────┴─────────┴───────────────┴─────────┴────────────┘

See also

SHOW PROCESSLIST

Outputs the content of the system.processes table, that contains a list of queries that is being processed at the moment, excepting SHOW PROCESSLIST queries.

Syntax

Syntax
SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]

The SELECT * FROM system.processes query returns data about all the current queries.

Tip

Execute in the console:

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

SHOW GRANTS

The SHOW GRANTS statement shows privileges for a user.

Syntax

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

If the user is not specified, the query returns privileges for the current user.

The WITH IMPLICIT modifier allows showing the implicit grants (e.g., GRANT SELECT ON system.one)

The FINAL modifier merges all grants from the user and its granted roles (with inheritance)

SHOW CREATE USER

The SHOW CREATE USER statement shows parameters which were used at user creation.

Syntax

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

SHOW CREATE ROLE

The SHOW CREATE ROLE statement shows parameters which were used at role creation.

Syntax

Syntax
SHOW CREATE ROLE name1 [, name2 ...]

SHOW CREATE ROW POLICY

The SHOW CREATE ROW POLICY statement shows parameters which were used at row policy creation.

Syntax

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

SHOW CREATE QUOTA

The SHOW CREATE QUOTA statement shows parameters which were used at quota creation.

Syntax

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

SHOW CREATE SETTINGS PROFILE

The SHOW CREATE SETTINGS PROFILE statement shows parameters which were used at settings profile creation.

Syntax

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

SHOW USERS

The SHOW USERS statement returns a list of user account names. To view user accounts parameters, see the system table system.users.

Syntax

Syntax
SHOW USERS

SHOW ROLES

The SHOW ROLES statement returns a list of roles. To view other parameters, see system tables system.roles and system.role_grants.

Syntax

Syntax
SHOW [CURRENT|ENABLED] ROLES

SHOW PROFILES

The SHOW PROFILES statement returns a list of setting profiles. To view user accounts parameters, see system table settings_profiles.

Syntax

Syntax
SHOW [SETTINGS] PROFILES

SHOW POLICIES

The SHOW POLICIES statement returns a list of row policies for the specified table. To view user accounts parameters, see system table system.row_policies.

Syntax

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

SHOW QUOTAS

The SHOW QUOTAS statement returns a list of quotas. To view quotas parameters, see the system table system.quotas.

Syntax

Syntax
SHOW QUOTAS

SHOW QUOTA

The SHOW QUOTA statement returns a quota consumption for all users or for current user. To view other parameters, see system tables system.quotas_usage and system.quota_usage.

Syntax

Syntax
SHOW [CURRENT] QUOTA

SHOW ACCESS

The SHOW ACCESS statement shows all users, roles, profiles, etc. and all their grants.

Syntax

Syntax
SHOW ACCESS

SHOW CLUSTER(S)

The SHOW CLUSTER(S) statement returns a list of clusters. All available clusters are listed in the system.clusters table.

Note

The SHOW CLUSTER name query displays the contents of system.clusters table for the specified cluster name.

Syntax

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

Examples

Query
SHOW CLUSTERS;
Response
┌─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 │
└──────────────────────────────────────────────┘
Query
SHOW CLUSTERS LIKE 'test%' LIMIT 1;
Response
┌─cluster─────────────────┐
│ test_cluster_two_shards │
└─────────────────────────┘
Query
SHOW CLUSTER 'test_shard_localhost' FORMAT Vertical;
Response
Row 1:
──────
cluster: test_shard_localhost
shard_num: 1
shard_weight: 1
replica_num: 1
host_name: localhost
host_address: 127.0.0.1
port: 9000
is_local: 1
user: default
default_database:
errors_count: 0
estimated_recovery_time: 0

SHOW SETTINGS

The SHOW SETTINGS statement returns a list of system settings and their values. It selects data from the system.settings table.

Syntax

Syntax
SHOW [CHANGED] SETTINGS LIKE|ILIKE <name>

Clauses

LIKE|ILIKE allow to specify a matching pattern for the setting name. It can contain globs such as % or _. LIKE clause is case-sensitive, ILIKE — case insensitive.

When the CHANGED clause is used, the query returns only settings changed from their default values.

Examples

Query with the LIKE clause:

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

Query with the ILIKE clause:

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

Query with the CHANGED clause:

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

SHOW SETTING

The SHOW SETTING statement outputs setting value for specified setting name.

Syntax

Syntax
SHOW SETTING <name>

See also

SHOW FILESYSTEM CACHES

Examples

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

See also

SHOW ENGINES

The SHOW ENGINES statement outputs the content of the system.table_engines table, that contains description of table engines supported by server and their feature support information.

Syntax

Syntax
SHOW ENGINES [INTO OUTFILE filename] [FORMAT format]

See also

SHOW FUNCTIONS

The SHOW FUNCTIONS statement outputs the content of the system.functions table.

Syntax

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

If either LIKE or ILIKE clause is specified, the query returns a list of system functions whose names match the provided <pattern>.

See Also

SHOW MERGES

The SHOW MERGES statement returns a list of merges. All merges are listed in the system.merges table:

ColumnDescription
tableTable name.
databaseThe name of the database the table is in.
estimate_completeThe estimated time to complete (in seconds).
elapsedThe time elapsed (in seconds) since the merge started.
progressThe percentage of completed work (0-100 percent).
is_mutation1 if this process is a part mutation.
size_compressedThe total size of the compressed data of the merged parts.
memory_usageMemory consumption of the merge process.

Syntax

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

Examples

Query
SHOW MERGES;
Response
┌─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 │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘
Query
SHOW MERGES LIKE 'your_t%' LIMIT 1;
Response
┌─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 │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘