Mysql的约束
2021/7/15 19:08:33
本文主要是介绍Mysql的约束,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Mysql常见约束
1.含义:一种限制,用于限制表中的是数据,为了保证添加到表中的数据的准确和可靠性
2.分类: 六大约束
①NOT NULL : 非空,用于保证该字段的值不能为空
比如:姓名、学号等
②DEFAULT:默认约束,用于保证该字段有默认值
比如:性别
③PRIMARY KEY:主键约束,用于保证该字段的值具有唯一性,并且非空
比如:学号、员工编号
④UNIQUE:唯一约束,用于保证该字段的值具有唯一性,但是可以为空
比如:座位号
⑤CHECK:检查约束【MySQL中不支持复制】
比如:年龄,性别
⑥FOREIGH KEY:外键约束,用于限制两个表之间的关系,用于保证该字段的值必须来自于主表的关联列的值
在从表添加外键约束,用于引用主表中某列的值
比如:学生表的专业编号,员工表的部门编号,员工表的工种编号
CREATE TABLE 表名{
字段名 字段类型 约束
}
3.添加约束的时机
(1)创建表时
(2)修改表时
4.约束的添加分类:
(1)列级约束
六大约束语法上都支持,但外键约束没有效果
(2)表级约束
六大约束中除了非空和默认,其他的都支持
创建表时添加约束
添加列级约束
1.语法:
直接在字段名和类型后面追加约束类型即可
只支持:默认、非空、主键、唯一
2.添加列级约束
USE students;
CREATE TABLE stuinfo(
id INT PRIMARY KEY, #主键
stuName VERCHAR(20) NOT NULL, #非空
gender CHAR(1) CHECK(gender=‘男’ OR gender=‘女’), #检查
seat INT UNNIQUE, #唯一
age INT DEFAULT 18, #默认约束
majorId INT FOREIGN KEY REFERENCES major(id) #外键
);
CREATE TABLE major(
id INT PRIMARY KEY,
majorName VARCHAR(20)
)
添加表级约束
1.添加表级约束语法:
在各个字段的最下面
【CONSTRAINT 约束名】 约束类型(字段名)
注意:【】中的内容可以省略
2.添加表级约束代码实例
CREATE TABLE stuinfo(
id INT,
stuName VERCHAR(20) ,
gender CHAR(1),
seat INT,
age INT,
majorId INT,
CONSTRAINT pk PRIMARY KEY(id), #主键
CONSTRAINT uq UNIQUE(seat), #唯一键
CONSTRAINT ck CHECK (gender = ‘男’ OR gender =‘女’), #检查约束
CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCE major(id) #外键
);
SHOW INDEX FROM stuinfo;
通用的写法
CREATE TABLE IF EXISTS stuinfo(
id INT PRIMARY KEY,
stuname VARCHAR(20) NOT NULL,
sex CHAR(1),
age INT DEFAULT 18,
seat INT UNIQUE,
majorid INT,
CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id)
);
主键和唯一的区别
保证唯一性 | 是否允许为空 | 一个表中可以有多少个 | 是否允许两个列组合成唯一键 | |
---|---|---|---|---|
主键 | √ | × | 至多有1个 | 允许,但不推荐 |
唯一 | √ | √ | 可以有多个 | 允许,但不推荐 |
这篇关于Mysql的约束的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20部署MySQL集群入门:新手必读指南
- 2024-11-20部署MySQL集群教程:初学者指南
- 2024-11-20部署MySQL集群项目实战:新手教程
- 2024-11-20部署MySQL集群资料:新手入门教程
- 2024-11-20MySQL集群部署教程:入门级详解
- 2024-11-20MySQL集群教程:入门与实践指南
- 2024-11-20部署MySQL集群教程:新手入门指南
- 2024-11-20MySQL读写分离教程:轻松入门
- 2024-11-20部署MySQL集群入门:一步一步搭建你的数据库集群
- 2024-11-19部署MySQL集群学习:入门教程