MySQL查看表结构
MySQL查看表结构
引言
接手老库、写SQL、加字段前,先看清表里有哪些列、类型、主键、索引和默认值。DESC看字段概览,SHOW CREATE TABLE拿到完整建表语句,information_schema可批量查元数据。
DESC看字段概览
DESC users;
-- 等价
DESCRIBE users;
输出Field、Type、Null、Key、Default、Extra六列,快速看字段类型和是否主键。
完整建表语句
SHOW CREATE TABLE users;
拿到原始CREATE TABLE,包含引擎、字符集、索引、外键、注释,迁移和备份最有用。
查看表索引
SHOW INDEX FROM users;
看有哪些索引、唯一性、列顺序,分析慢查询时用。
查表状态和引擎
SHOW TABLE STATUS LIKE 'users';
看引擎、行数、行格式、数据和索引大小、自增值。
information_schema批量查
SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA='dbname' AND TABLE_NAME='users';
程序里动态读表结构、批量比对字段时用。
注意事项
- DESC不显示完整索引和外键,要看SHOW CREATE TABLE;
- 大表SHOW TABLE STATUS的行数是估算值,非精确;
- 看字段注释用information_schema的COLUMN_COMMENT;
- 修改结构前先SHOW CREATE TABLE留底;
- 区分NULL和默认空串,Default列直接体现;
- 自增字段在Extra列显示auto_increment。
总结
日常DESC快速看字段,要完整定义用SHOW CREATE TABLE,查索引用SHOW INDEX,看容量引擎用SHOW TABLE STATUS,脚本批量取元数据查information_schema。改结构前先把建表语句留底,避免误删索引或默认值。