MySQL中查看表结构最常用的是DESCRIBE(或DESC)命令,可显示字段名、类型、是否为空、默认值、键信息等;SHOW COLUMNS功能相同但语义更清晰;SHOW CREATE TABLE返回完整建表语句,含字符集、引擎、索引、注释等;索引和约束需用SHOW INDEX或information_schema查询。

在 MySQL 中,查看表结构最常用、最直接的方式就是使用 DESCRIBE(或简写为 DESC)命令。
用 DESCRIBE 查看表字段信息
执行以下语句即可快速查看表的列名、数据类型、是否允许为空、默认值、键信息等基础结构:
- DESC table_name;
- DESCRIBE table_name;(效果完全一样)
例如:DESC users; 会列出 users 表所有字段的定义,包括 Type(类型)、Null(是否可空)、Key(是否为主键/索引)、Default(默认值)、Extra(如 auto_increment)等列。
用 SHOW COLUMNS 查看更清晰的字段列表
这个命令和 DESCRIBE 功能几乎一致,但语法更直白,适合初学者理解:
- SHOW COLUMNS FROM table_name;
- SHOW COLUMNS IN table_name;
输出格式与 DESCRIBE 完全相同,只是命令字面意思更明确——“显示这张表的列”。
用 SHOW CREATE TABLE 查看完整建表语句
如果需要了解表的全部定义(包括字符集、存储引擎、索引、外键、注释等),必须用这个命令:
- SHOW CREATE TABLE table_name\G;(加 \G 可让结果竖排显示,更易读)
它返回的是创建该表时所用的完整 SQL 语句,是排查表设计问题、迁移建表逻辑、检查 COMMENT 注释的首选方式。
补充:如何查看表的索引和约束
仅靠 DESCRIBE 看不到索引详情(比如联合索引、唯一约束、外键),需要用:
- SHOW INDEX FROM table_name; —— 查所有索引结构
- SHOW KEYS FROM table_name; —— 同 SHOW INDEX,是别名
- SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'table_name'; —— 查外键关联信息(需权限)










