跳到主要内容

Describe

描述表

要查看表的 schema,请使用 DESCRIBE 语句(或其别名 DESCSHOW)并跟上表名。

CREATE TABLE tbl (i INTEGER PRIMARY KEY, j VARCHAR);
DESCRIBE tbl;
SHOW tbl; -- equivalent to DESCRIBE tbl;
column_namecolumn_typenullkeydefaultextra
iINTEGERNOPRINULLNULL
jVARCHARYESNULLNULLNULL

描述查询

要查看查询结果的 schema,请在查询前加上 DESCRIBE

DESCRIBE SELECT * FROM tbl;
column_namecolumn_typenullkeydefaultextra
iINTEGERYESNULLNULLNULL
jVARCHARYESNULLNULLNULL

注意二者有细微差异:与描述表的结果相比,可空性(null)与键信息(key)会丢失。

在子查询中使用 DESCRIBE

DESCRIBE 可作为子查询使用。这样可以根据描述结果创建表,例如:

CREATE TABLE tbl_description AS SELECT * FROM (DESCRIBE tbl);

描述远程表

可通过 httpfs 扩展并使用 DESCRIBE TABLE 语句描述远程表。例如:

DESCRIBE TABLE 'https://${uri}/Star_Trek-Season_1.csv';
column_namecolumn_typenullkeydefaultextra
season_numBIGINTYESNULLNULLNULL
episode_numBIGINTYESNULLNULLNULL
aired_dateDATEYESNULLNULLNULL
cnt_kirk_hookupsBIGINTYESNULLNULLNULL
cnt_downed_redshirtsBIGINTYESNULLNULLNULL
bool_aliens_almost_took_over_planetBIGINTYESNULLNULLNULL
bool_aliens_almost_took_over_enterpriseBIGINTYESNULLNULLNULL
cnt_vulcan_nerve_pinchBIGINTYESNULLNULLNULL
cnt_warp_speed_ordersBIGINTYESNULLNULLNULL
highest_warp_speed_issuedBIGINTYESNULLNULLNULL
bool_hand_phasers_firedBIGINTYESNULLNULLNULL
bool_ship_phasers_firedBIGINTYESNULLNULLNULL
bool_ship_photon_torpedos_firedBIGINTYESNULLNULLNULL
cnt_transporter_paxBIGINTYESNULLNULLNULL
cnt_damn_it_jim_quoteBIGINTYESNULLNULLNULL
cnt_im_givin_her_all_shes_got_quoteBIGINTYESNULLNULLNULL
cnt_highly_illogical_quoteBIGINTYESNULLNULLNULL
bool_enterprise_saved_the_dayBIGINTYESNULLNULLNULL