`SHOW CREATE TABLE` 是 MySQL 中查看表结构和约束的重要命令,它能够显示表的完整创建语句,包括所有约束信息。
命令语法
SHOW CREATE TABLE <数据表名>;
或使用更易读的格式:
SHOW CREATE TABLE <数据表名> \G
约束类型及显示方式
1. 主键约束 (PRIMARY KEY)
显示为:`PRIMARY KEY (列名)`
2. 唯一约束 (UNIQUE)
显示为:`UNIQUE KEY 约束名 (列名)`
3. 非空约束 (NOT NULL)
显示在列定义中:`列名 数据类型 NOT NULL`
4. 默认值约束 (DEFAULT)
显示在列定义中:`列名 数据类型 DEFAULT 默认值`
5. 外键约束 (FOREIGN KEY)
显示为:`CONSTRAINT 约束名 FOREIGN KEY (列名) REFERENCES 引用表名 (引用列名)`
6. 检查约束 (CHECK)
MySQL 8.0.16+ 版本支持,显示为:`CONSTRAINT 约束名 CHECK (表达式)`
实际应用示例
创建包含多种约束的表
CREATE TABLE tb_emp8 ( id INT(11) PRIMARY KEY, name VARCHAR(22) UNIQUE, deptId INT(11) NOT NULL, salary FLOAT DEFAULT 0, CHECK(salary>0), FOREIGN KEY(deptId) REFERENCES tb_dept1(id) );
查看表约束
SHOW CREATE TABLE tb_emp8 \G
输出结果解析
1. row
Table: tb_emp8
Create Table: CREATE TABLE `tb_emp8` ( `id` int(11) NOT NULL, `name` varchar(22) DEFAULT NULL, `deptId` int(11) NOT NULL, `salary` float DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `deptId` (`deptId`), CONSTRAINT `tb_emp8_ibfk_1` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312
其他查看约束的方法
1. 查看表结构:
DESC 表名;
或
DESCRIBE 表名;
2. 查看外键约束:
SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_NAME = '表名';
3. 查看键信息:
SHOW KEYS FROM 表名;
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程