mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 02:41:59 +00:00
dd2972b8c3
* 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>
4.6 KiB
4.6 KiB
toc_priority | toc_title |
---|---|
38 | SHOW |
SHOW 查询
SHOW CREATE TABLE
SHOW CREATE [TEMPORARY] [TABLE|DICTIONARY] [db.]table [INTO OUTFILE filename] [FORMAT format]
返回单个字符串类型的 ‘statement’列,其中只包含了一个值 - 用来创建指定对象的 CREATE
语句。
注意,如果使用该查询去获取系统表的 CREATE
语句,你得到的是一个虚构的语句,仅用来展示系统的表结构,而不能实际创建表。
SHOW DATABASES
SHOW DATABASES [INTO OUTFILE filename] [FORMAT format]
打印所有的数据库列表,该查询等同于 SELECT name FROM system.databases [INTO OUTFILE filename] [FORMAT format]
SHOW PROCESSLIST
SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]
输出 system.processes表的内容,包含有当前正在处理的请求列表,除了 SHOW PROCESSLIST
查询。
SELECT * FROM system.processes
查询返回和当前请求相关的所有数据
提示 (在控制台执行):
$ watch -n1 "clickhouse-client --query='SHOW PROCESSLIST'"
SHOW TABLES
显示表的清单
SHOW [TEMPORARY] TABLES [{FROM | IN} <db>] [LIKE '<pattern>' | WHERE expr] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]
如果未使用 FROM
字句,该查询返回当前数据库的所有表清单
可以用下面的方式获得和 SHOW TABLES
一样的结果:
SELECT name FROM system.tables WHERE database = <db> [AND name LIKE <pattern>] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]
示例
下列查询获取最前面的2个位于system
库中且表名包含 co
的表。
SHOW TABLES FROM system LIKE '%co%' LIMIT 2
┌─name───────────────────────────┐
│ aggregate_function_combinators │
│ collations │
└────────────────────────────────┘
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>]
示例
下列查询获取最前面的2个位于 system
库中且名称包含 reg
的字典表。
SHOW DICTIONARIES FROM db LIKE '%reg%' LIMIT 2
┌─name─────────┐
│ regions │
│ region_names │
└──────────────┘
SHOW GRANTS
显示用户的权限
语法
SHOW GRANTS [FOR user]
如果未指定用户,输出当前用户的权限
SHOW CREATE USER
显示 user creation用到的参数。
SHOW CREATE USER
不会输出用户的密码信息
语法
SHOW CREATE USER [name | CURRENT_USER]
SHOW CREATE ROLE
显示 role creation 中用到的参数。
语法
SHOW CREATE ROLE name
SHOW CREATE ROW POLICY
显示 row policy creation中用到的参数
语法
SHOW CREATE [ROW] POLICY name ON [database.]table
SHOW CREATE QUOTA
显示 quota creation中用到的参数
语法
SHOW CREATE QUOTA [name | CURRENT]
SHOW CREATE SETTINGS PROFILE
显示 settings profile creation中用到的参数
语法
SHOW CREATE [SETTINGS] PROFILE name