* clarify that cannot show create table of system's tables * clarify that cannot show create table of system's tables in the document * bypass test style-check for required `database=currentDatabase()` because `show create table` do not have condition * rename supportsShowCreateTable to isSystemStorage * build fake create query for show create table of system's tables * fix tests for show create table on system's table: 1. only build fake create query when cannot get real query 2. only test rocksdb when it's enabled. * fix test for show create table system.tables * fix test for ASTCreateQuery set table and database * change to LOGICAL_ERROR when cannot get in_memory metadata Co-authored-by: tavplubix <tavplubix@gmail.com> * implement common getCreateQueryFromStorage Co-authored-by: tavplubix <tavplubix@gmail.com>
14 KiB
toc_priority | toc_title |
---|---|
37 | SHOW |
SHOW Statements
SHOW CREATE TABLE
SHOW CREATE [TEMPORARY] [TABLE|DICTIONARY|VIEW] [db.]table|view [INTO OUTFILE filename] [FORMAT format]
Returns a single String
-type ‘statement’ column, which contains a single value – the CREATE
query used for creating the specified object.
Note that if you use this statement to get CREATE
query of system tables, you will get a fake query, which only declares table structure, but cannot be used to create table.
SHOW DATABASES
Prints a list of all databases.
SHOW DATABASES [LIKE | ILIKE | NOT LIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE filename] [FORMAT format]
This statement is identical to the query:
SELECT name FROM system.databases [WHERE name LIKE | ILIKE | NOT LIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE filename] [FORMAT format]
Examples
Getting database names, containing the symbols sequence 'de' in their names:
SHOW DATABASES LIKE '%de%'
Result:
┌─name────┐
│ default │
└─────────┘
Getting database names, containing symbols sequence 'de' in their names, in the case insensitive manner:
SHOW DATABASES ILIKE '%DE%'
Result:
┌─name────┐
│ default │
└─────────┘
Getting database names, not containing the symbols sequence 'de' in their names:
SHOW DATABASES NOT LIKE '%de%'
Result:
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ system │
│ test │
│ tutorial │
└────────────────────────────────┘
Getting the first two rows from database names:
SHOW DATABASES LIMIT 2
Result:
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default │
└────────────────────────────────┘
See Also
SHOW PROCESSLIST
SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]
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.
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 TABLES
Displays a list of tables.
SHOW [TEMPORARY] TABLES [{FROM | IN} <db>] [LIKE | ILIKE | NOT LIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]
If the FROM
clause is not specified, the query returns the list of tables from the current database.
This statement is identical to the query:
SELECT name FROM system.tables [WHERE name LIKE | ILIKE | NOT LIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]
Examples
Getting table names, containing the symbols sequence 'user' in their names:
SHOW TABLES FROM system LIKE '%user%'
Result:
┌─name─────────────┐
│ user_directories │
│ users │
└──────────────────┘
Getting table names, containing sequence 'user' in their names, in the case insensitive manner:
SHOW TABLES FROM system ILIKE '%USER%'
Result:
┌─name─────────────┐
│ user_directories │
│ users │
└──────────────────┘
Getting table names, not containing the symbol sequence 's' in their names:
SHOW TABLES FROM system NOT LIKE '%s%'
Result:
┌─name─────────┐
│ metric_log │
│ metric_log_0 │
│ metric_log_1 │
└──────────────┘
Getting the first two rows from table names:
SHOW TABLES FROM system LIMIT 2
Result:
┌─name───────────────────────────┐
│ aggregate_function_combinators │
│ asynchronous_metric_log │
└────────────────────────────────┘
See Also
SHOW DICTIONARIES
Displays a list of external dictionaries.
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>]
Example
The following query selects the first two rows from the list of tables in the system
database, whose names contain reg
.
SHOW DICTIONARIES FROM db LIKE '%reg%' LIMIT 2
┌─name─────────┐
│ regions │
│ region_names │
└──────────────┘
SHOW GRANTS
Shows privileges for a user.
Syntax
SHOW GRANTS [FOR user1 [, user2 ...]]
If user is not specified, the query returns privileges for the current user.
SHOW CREATE USER
Shows parameters that were used at a user creation.
SHOW CREATE USER
does not output user passwords.
Syntax
SHOW CREATE USER [name1 [, name2 ...] | CURRENT_USER]
SHOW CREATE ROLE
Shows parameters that were used at a role creation.
Syntax
SHOW CREATE ROLE name1 [, name2 ...]
SHOW CREATE ROW POLICY
Shows parameters that were used at a row policy creation.
Syntax
SHOW CREATE [ROW] POLICY name ON [database1.]table1 [, [database2.]table2 ...]
SHOW CREATE QUOTA
Shows parameters that were used at a quota creation.
Syntax
SHOW CREATE QUOTA [name1 [, name2 ...] | CURRENT]
SHOW CREATE SETTINGS PROFILE
Shows parameters that were used at a settings profile creation.
Syntax
SHOW CREATE [SETTINGS] PROFILE name1 [, name2 ...]
SHOW USERS
Returns a list of user account names. To view user accounts parameters, see the system table system.users.
Syntax
SHOW USERS
SHOW ROLES
Returns a list of roles. To view another parameters, see system tables system.roles and system.role-grants.
Syntax
SHOW [CURRENT|ENABLED] ROLES
SHOW PROFILES
Returns a list of setting profiles. To view user accounts parameters, see the system table settings_profiles.
Syntax
SHOW [SETTINGS] PROFILES
SHOW POLICIES
Returns a list of row policies for the specified table. To view user accounts parameters, see the system table system.row_policies.
Syntax
SHOW [ROW] POLICIES [ON [db.]table]
SHOW QUOTAS
Returns a list of quotas. To view quotas parameters, see the system table system.quotas.
Syntax
SHOW QUOTAS
SHOW QUOTA
Returns a quota consumption for all users or for current user. To view another parameters, see system tables system.quotas_usage and system.quota_usage.
Syntax
SHOW [CURRENT] QUOTA
SHOW ACCESS
Shows all users, roles, profiles, etc. and all their grants.
Syntax
SHOW ACCESS
SHOW CLUSTER(s)
Returns a list of clusters. All available clusters are listed in the system.clusters table.
!!! info "Note"
SHOW CLUSTER name
query displays the contents of system.clusters table for this cluster.
Syntax
SHOW CLUSTER '<name>'
SHOW CLUSTERS [LIKE|NOT LIKE '<pattern>'] [LIMIT <N>]
Examples
Query:
SHOW CLUSTERS;
Result:
┌─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;
Result:
┌─cluster─────────────────┐
│ test_cluster_two_shards │
└─────────────────────────┘
Query:
SHOW CLUSTER 'test_shard_localhost' FORMAT Vertical;
Result:
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
Returns a list of system settings and their values. Selects data from the system.settings table.
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:
SHOW SETTINGS LIKE 'send_timeout';
Result:
┌─name─────────┬─type────┬─value─┐
│ send_timeout │ Seconds │ 300 │
└──────────────┴─────────┴───────┘
Query with the ILIKE
clause:
SHOW SETTINGS ILIKE '%CONNECT_timeout%'
Result:
┌─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:
SHOW CHANGED SETTINGS ILIKE '%MEMORY%'
Result:
┌─name─────────────┬─type───┬─value───────┐
│ max_memory_usage │ UInt64 │ 10000000000 │
└──────────────────┴────────┴─────────────┘
See Also
- system.settings table