mysql中的describe语法详解

本文详细介绍了MySQL中的DESCRIBE与EXPLAIN命令的用法及其语法结构。这两个命令虽被视为同义词,但通常DESCRIBE用于查看表结构,而EXPLAIN则用于查询执行计划。文中通过具体实例展示了如何使用这些命令来获取表结构信息和查询执行计划。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杂货铺的小掌柜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值