ClickHouse/docs/zh/sql-reference/statements/show.md
SuperDJY dd2972b8c3
return fake create query when executing show create table on system's tables. (#31391)
* 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>
2021-11-19 13:25:55 +03:00

4.6 KiB
Raw Blame History

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

原始文档