在 mysql 中查看表结构最常用 DESCRIBE(或 DESC)语句,可显示字段名、类型、是否为空、键、默认值和额外属性;还可使用 SHOW CREATE table、SHOW INDEX 等获取更完整元数据。

在 MySQL 中查看表结构最常用的方法是使用 DESCRIBE(或简写为 DESC)语句,它能快速显示表的字段名、数据类型、是否允许 NULL、键信息、默认值和额外属性等核心信息。
DESCRIBE 语句的基本用法
DESCRIBE 是 MySQL 提供的快捷命令,语法简单直观:
DESCRIBE table_name;- 等价写法:
DESC table_name;(DESC是DESCRIBE的缩写) - 也可用标准 SQL 的
SHOW COLUMNS FROM table_name;,效果相同
执行后会返回一个结果集,包含列名(Field)、类型(Type)、是否为空(Null)、键(Key)、默认值(default)和额外信息(Extra)六列。
关键字段含义详解
理解返回结果中各列的含义,才能准确读取表结构:
- Field:字段名称
- Type:数据类型及长度,如
varchar(255)、int(11);带unsigned表示无符号,zerofill表示前导零填充 - Null:为
YES表示该字段允许 NULL;NO表示定义了NOT NULL - Key:标识索引类型 ——
PRI(主键)、UNI(唯一索引)、MUL(普通索引,允许重复值) - Default:字段的默认值;若为
NULL或空字符串,表示无显式默认值(注意:NOT NULL 字段若未设 DEFAULT,插入时必须提供值) - Extra:附加属性,常见如
auto_increment(自增)、on update CURRENT_TIMESTAMP(时间戳自动更新)
补充:查看更完整的表结构信息
DESCRIBE 主要聚焦字段层面。如需了解建表语句、索引详情、外键、字符集等完整元数据,可配合以下语句:
-
SHOW CREATE TABLE table_name;—— 返回完整的CREATE TABLE语句,含引擎、字符集、索引、注释等全部定义 -
SHOW INDEX FROM table_name;—— 列出所有索引及其字段顺序、是否唯一、索引类型等 -
SHOW FULL COLUMNS FROM table_name;—— 比DESCRIBE多一列Collation(排序规则)和Privileges(权限),适合排查字符集相关问题
注意事项与常见问题
使用过程中需留意几个易错点: