用 SHOW CREATE TABLE。它返回可执行建表语句,含字段类型、注释、索引、字符集;SELECT 仅查数据,结构需拼接多表查询,易漏COMMENT或默认值。
导出表结构用 SELECT 还是 SHOW CREATE TABLE?
直接看结果:用 show create table。它返回的是可执行的建表语句,字段类型、注释、索引、字符集全在,而 select 只能查数据,结构信息得拼接多个 information_schema 查询,容易漏 comment 或默认值。
实操建议:
- 在 phpMyAdmin 的 SQL 标签页里粘贴:
SHOW CREATE TABLE `users`;(把users换成你的表名) - 结果里第二列就是完整建表语句,复制出来就能当文档用
- 如果要批量导出所有表,别手动点——改用「导出」页签,格式选
SQL,勾选结构,取消勾选数据
中文注释导出后乱码怎么办?
本质是字符集不一致:MySQL 表定义用了 utf8mb4,但 phpMyAdmin 导出时用了 latin1 编码写文件,注释里的中文就变问号或 Mojibake。
关键动作不是改数据库,而是控制导出环节:
- 导出前,在 phpMyAdmin 右上角点击「设置」→「导入/导出」→ 找到
导出字符集,选utf8mb4 - 导出格式选
SQL时,下方展开「格式特定选项」,确认导出表的注释已勾选 - 如果已导出乱码文件,别用记事本重存——用 VS Code 或 Sublime 打开,右下角切换编码为
UTF-8 with BOM再另存
想导出字段名+类型+注释的纯文本表格(非 SQL),怎么绕过 phpMyAdmin 限制?
phpMyAdmin 本身不提供「字段清单 CSV」导出,硬要用界面功能,只能靠 SELECT 查 INFORMATION_SCHEMA.COLUMNS,但要注意字段顺序和 NULL 值显示问题。
立即学习“PHP免费学习笔记(深入)”;
推荐这条现成可用的查询:
SELECT COLUMN_NAME AS `字段名`, COLUMN_TYPE AS `类型`, IS_NULLABLE AS `允许NULL`, COLUMN_DEFAULT AS `默认值`, COLUMN_COMMENT AS `注释` FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'your_db_name' AND TABLE_NAME = 'users' ORDER BY ORDINAL_POSITION;
注意点:
- 把
your_db_name和users替换成真实库名和表名 - 执行后点结果区上方的「导出」按钮,格式选
CSV,编码选UTF-8 -
COLUMN_COMMENT为空时会显示NULL,如果想显示空字符串,改成IFNULL(COLUMN_COMMENT, '')
导出的数据字典要给开发用,哪些字段必须保留?
开发最常查的是字段含义和约束边界,不是 SQL 语法细节。所以别一股脑导出全部 INFORMATION_SCHEMA 字段,聚焦这五个:
-
COLUMN_NAME:字段名(命名规范第一关) -
COLUMN_TYPE:比如varchar(255)而不是笼统写string -
IS_NULLABLE:明确标出YES/NO,比看NOT NULL关键字更直观 -
COLUMN_DEFAULT:尤其注意NULL、CURRENT_TIMESTAMP这类隐式默认值 -
COLUMN_COMMENT:唯一能写业务含义的地方,别留空
真正容易被忽略的是 ORDINAL_POSITION——它决定字段在表里的物理顺序,有些 ORM 或导出工具依赖这个顺序生成代码,导出时最好也带上。



















