SHOW CREATE TABLE | DICTIONARY | VIEW | DATABASE
이 SQL 문들은 String 유형의 단일 컬럼을 반환하며,
여기에는 지정된 객체를 생성하는 데 사용된 CREATE 쿼리가 포함됩니다.
구문
SHOW [CREATE] TABLE | TEMPORARY TABLE | DICTIONARY | VIEW | DATABASE [db.]table|view [INTO OUTFILE filename] [FORMAT format]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]예시
이 예시에서는 이름에 'de'라는 문자열이 포함된 데이터베이스 이름을 확인하기 위해 SHOW를 사용합니다:
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>]예시
이 예시에서는 테이블 이름에 'user'가 포함된 모든 테이블을 찾기 위해 SHOW TABLES 문을 사용합니다:
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 │
└──────────────┘마지막으로, 처음 두 개 테이블(table)의 이름만 조회할 수 있습니다:
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 키워드를 사용하면 출력에 collation, comment, privilege 컬럼이 포함됩니다.
SHOW COLUMNS 문은 다음 구조의 결과 테이블을 생성합니다:
| Column | Description | Type |
|---|---|---|
field |
컬럼 이름 | String |
type |
컬럼의 데이터 타입입니다. 쿼리가 MySQL wire 프로토콜을 통해 수행된 경우 MySQL에서 대응되는 type name이 표시됩니다. | String |
null |
컬럼 데이터 타입이 Nullable이면 YES, 그렇지 않으면 NO |
String |
key |
컬럼이 primary key의 일부이면 PRI, sorting key의 일부이면 SOR, 그 외에는 빈 값 |
String |
default |
컬럼 타입이 ALIAS, DEFAULT, 또는 MATERIALIZED인 경우 컬럼의 기본 표현식, 그렇지 않으면 NULL |
Nullable(String) |
extra |
추가 정보로, 현재는 사용되지 않습니다 | String |
collation |
(FULL 키워드를 지정한 경우에만) 컬럼의 Collation입니다. ClickHouse는 컬럼별 collations를 지원하지 않으므로 항상 NULL입니다 |
Nullable(String) |
comment |
(FULL 키워드를 지정한 경우에만) 컬럼에 대한 comment |
String |
privilege |
(FULL 키워드를 지정한 경우에만) 이 컬럼에 대해 보유한 privilege로, 현재는 사용할 수 없습니다 |
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 table)인 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 호환성을 위해 존재합니다.
이 문은 다음 구조의 결과 테이블을 생성합니다:
| 컬럼 | 설명 | 유형 |
|---|---|---|
table |
테이블 이름입니다. | String |
non_unique |
ClickHouse는 고유성 제약 조건을 지원하지 않으므로 항상 1입니다. |
UInt8 |
key_name |
인덱스 이름입니다. 인덱스가 기본 키 인덱스인 경우 PRIMARY입니다. |
String |
seq_in_index |
기본 키 인덱스인 경우 1부터 시작하는 컬럼의 위치입니다. 데이터 스키핑 인덱스인 경우 항상 1입니다. |
UInt8 |
column_name |
기본 키 인덱스인 경우 컬럼 이름입니다. 데이터 스키핑 인덱스인 경우 ''(빈 문자열)이며, field "expression"를 참조하십시오. |
String |
collation |
인덱스에서 컬럼의 정렬 방식입니다. 오름차순이면 A, 내림차순이면 D, 정렬되지 않은 경우 NULL입니다. |
Nullable(String) |
cardinality |
인덱스 cardinality(인덱스 내 고유값 개수)의 추정치입니다. 현재는 항상 0입니다. | UInt64 |
sub_part |
ClickHouse는 MySQL과 같은 인덱스 프리픽스를 지원하지 않으므로 항상 NULL입니다. |
Nullable(String) |
packed |
ClickHouse는 패킹 인덱스(MySQL과 같은)를 지원하지 않으므로 항상 NULL입니다. |
Nullable(String) |
null |
현재 사용되지 않습니다 | |
index_type |
인덱스 유형입니다. 예: PRIMARY, MINMAX, BLOOM_FILTER 등입니다. |
String |
comment |
인덱스에 대한 추가 정보이며, 현재는 항상 ''(빈 문자열)입니다. |
String |
index_comment |
ClickHouse의 인덱스는 COMMENT field를 가질 수 없으므로(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 쿼리는 현재 실행 중인 모든 쿼리의 정보를 반환합니다.
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 SQL 문은 역할 생성 시 사용된 매개변수를 표시합니다.
구문
SHOW CREATE ROLE name1 [, name2 ...]SHOW CREATE ROW POLICY
SHOW CREATE ROW POLICY 문은 ROW POLICY 생성에 사용된 매개변수를 보여줍니다.
구문
SHOW CREATE [ROW] POLICY name ON [database1.]table1 [, [database2.]table2 ...]SHOW CREATE QUOTA
SHOW CREATE QUOTA SQL 문은 QUOTA creation 시 사용된 매개변수를 표시합니다.
구문
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 table) system.users를 참조하십시오.
구문
SHOW USERSSHOW ROLES
SHOW ROLES 문은 역할 목록을 반환합니다.
다른 매개변수를 확인하려면
시스템 테이블 system.roles 및 system.role_grants를 참조하십시오.
구문
SHOW [CURRENT|ENABLED] ROLESSHOW PROFILES
SHOW PROFILES 문은 설정 프로필 목록을 반환합니다.
사용자 계정의 매개변수를 확인하려면 시스템 테이블(system table) settings_profiles를 참조하십시오.
구문
SHOW [SETTINGS] PROFILESSHOW POLICIES
SHOW POLICIES 문은 지정된 테이블의 ROW POLICY 목록을 반환합니다.
사용자 계정 매개변수를 보려면 시스템 테이블(system table) system.row_policies를 참조하십시오.
구문
SHOW [ROW] POLICIES [ON [db.]table]SHOW QUOTAS
SHOW QUOTAS 문은 QUOTA 목록을 반환합니다.
QUOTA 매개변수를 확인하려면 시스템 테이블(system table) system.quotas를 참조하십시오.
구문
SHOW QUOTASSHOW QUOTA
SHOW QUOTA 문은 모든 사용자 또는 현재 사용자의 QUOTA 사용량을 반환합니다.
다른 매개변수는 시스템 테이블 system.quotas_usage 및 system.quota_usage에서 확인하십시오.
구문
SHOW [CURRENT] QUOTASHOW ACCESS
SHOW ACCESS 문은 모든 사용자, 역할, 프로필 등과 해당 항목에 대한 모든 권한 부여를 표시합니다.
구문
SHOW ACCESSSHOW CLUSTER(S)
SHOW CLUSTER(S) 문은 클러스터 목록을 반환합니다.
사용 가능한 모든 클러스터는 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;행 1:
──────
cluster: test_shard_localhost
shard_num: 1
replica_num: 1
host_name: localhost
host_address: 127.0.0.1
port: 9000SHOW SETTINGS
SHOW SETTINGS 문은 시스템 설정과 그 값을 목록으로 반환합니다.
이 문은 system.settings 테이블(table)에서 데이터를 조회합니다.
구문
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>관련 항목
system.settings테이블
SHOW FILESYSTEM CACHES
예시
SHOW FILESYSTEM CACHES┌─Caches────┐
│ s3_cache │
└───────────┘관련 항목
system.settings테이블
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>과 일치하는 시스템 함수 목록을 반환합니다.
관련 항목
system.functions테이블
SHOW MERGES
SHOW MERGES 문은 머지 목록을 반환합니다.
모든 머지는 system.merges 테이블에 나열됩니다:
| Column | Description |
|---|---|
table |
테이블 이름입니다. |
database |
테이블이 속한 데이터베이스의 이름입니다. |
estimate_complete |
완료까지의 예상 시간(초)입니다. |
elapsed |
머지가 시작된 후 경과한 시간(초)입니다. |
progress |
완료된 작업의 비율(0~100%)입니다. |
is_mutation |
이 프로세스가 파트 mutation인 경우 1입니다. |
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 │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘SHOW CREATE MASKING POLICY
SHOW CREATE MASKING POLICY SQL 문은 마스킹 정책 생성에 사용된 매개변수를 표시합니다.
구문
SHOW CREATE MASKING POLICY name ON [database.]table