网站建设知识
mysql中的describe语法详解
2025-07-22 10:02  点击:0
mysql中的describe语法详解。在MySQL中,DESCRIBE 和 EXPLAIN 是同义词。可以使用两者中的任何一个来获取表结构信息或者查询执行计划(查询执行计划:对MySQL执行查询的解释)。事实上,尽管说二者是同义词。但是,DESCRIBE 更多地用于获取表结构信息;而 EXPLAIN 更多用于获取查询执行计划。语法如下:    {EXPLAIN | DESCRIBE | DESC}    tbl_name [col_name | wild]    {EXPLAIN | DESCRIBE | DESC}    [explain_type]    {explainable_stmt | FOR ConNECTION connection_id}    explain_type: {    EXTENDED    | PARTITIONS    | FORMAT = format_name    }    format_name: {    TRADITIonAL    | JSON    }    explainable_stmt: {    SELECT statement    | DELETE statement    | INSERT statement    | REPLACE statement    | UPDATE statement    }mysql> DESCRIBE pet; # 列出 pet 表的所有列+---------+-------------+------+-----+---------+-------+| Field   | Type        | Null | Key | Default | Extra |+---------+-------------+------+-----+---------+-------+| name    | varchar(20) | YES  |     | NULL    |       || owner   | varchar(20) | YES  |     | NULL    |       || species | varchar(20) | YES  |     | NULL    |       || sex     | char(1)     | YES  |     | NULL    |       || birth   | date        | YES  |     | NULL    |       || death   | date        | YES  |     | NULL    |       |+---------+-------------+------+-----+---------+-------+6 rows in set (0.02 sec)DESCRIBE 提供了一张表中的列的信息。DESCRIBE is a shortcut for SHOW COLUMNS. "SHOW COLUMNS" 语法能提供更多的关于输出列的信息。默认情况下,DESCRIBE 显示表中所有列的信息。如果指定col_name的话,将只显示指定的列的信息。mysql> DESCRIBE pet name; # 只显示 name 列的信息+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| name  | varchar(20) | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+1 row in set (0.02 sec)如果指定wild的话,它应该是一个匹配字符串。可以包含 % (表示任意字符)和 _ (表示单个字符);这种情况下,输出结果将会是匹配到的列的信息。如果列名里边没有空字符或特殊字符,wild 没有必要使用引号。mysql> DESCRIBE pet ___; # 输出列名是三个字符的列的信息+-------+---------+------+-----+---------+-------+| Field | Type    | Null | Key | Default | Extra |+-------+---------+------+-----+---------+-------+| sex   | char(1) | YES  |     | NULL    |       |+-------+---------+------+-----+---------+-------+1 row in set (0.02 sec)mysql> DESCRIBE pet "d%"; # 输出列名是以字母d开头的列的信息+-------+------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+------+------+-----+---------+-------+| death | date | YES  |     | NULL    |       |+-------+------+------+-----+---------+-------+1 row in set (0.01 sec)