文章目录
- ☃️概述
- ☃️分类
- ☃️常用约束
- ☃️外键约束
- ❄️❄️外键删除/更新行为
欢迎来到 请回答1024 的博客 |
🍎🍎🍎欢迎来到 请回答1024的博客
关于博主: 我是 请回答1024,一个追求数学与计算的边界、时间与空间的平衡,0与1的延伸的后端开发者。
博客特色: 在我的博客中,开设了如下专栏(点击可以进入专栏奥~): Java、MySQL、Redis、Spring、SpringBoot、SpringCloud、RabbitMQ、微服务、分布式 等相关技术专栏。期待与您一起,探索编程世界中的发现和创新之旅。
🌈我的主页 : https://reply1024.blog.csdn.net
敬请期待定期更新、见解和教程!让我们一起踏上这段编码冒险之旅!
数学与计算的边界 时间与空间的平衡 0与1的延伸 |
☃️概述
MySQL 约束是用于确保数据库中数据完整性和一致性的规则。它们定义了对表中数据的限制,以确保数据的准确性和可靠性。MySQL 支持多种类型的约束,包括以下几种:
主键约束(Primary Key Constraint):主键约束用于唯一标识表中的每一行数据。主键必须是唯一且非空的,每个表只能有一个主键。通过定义主键约束,可以确保表中的每一行都可以被唯一地标识。
唯一约束(Unique Constraint):唯一约束确保表中的某个列或一组列的值是唯一的,但允许空值(NULL)。唯一约束可用于确保某些列的数值不重复,但允许其中部分为空。
外键约束(Foreign Key Constraint):外键约束用于创建表之间的关联关系。它指定了一个列或一组列与另一表中的主键或唯一键列之间的关系。外键约束确保了数据的引用完整性,即一个表中的外键值必须在相关联的表中存在。
检查约束(Check Constraint):检查约束用于限制表中某列的取值范围。它定义了一个表达式,该表达式必须为真才能插入或更新表中的数据。通过检查约束,可以确保数据满足特定条件。
这些约束可以在创建表时定义,也可以在已存在的表上添加或修改。它们提供了一种强大的机制,用于确保数据库中的数据完整性,并帮助维护数据的一致性。
☃️分类
约束 | 描述 | 关键字 |
---|---|---|
非空约束 | 限制该字段的数据不能为null | NOT NULL |
唯一约束 | 保证该字段的所有数据都是唯一、不重复的 | UNIQUE |
主键约束 | 主键是一行数据的唯一标识,要求非空且唯一 | PRIMARY KEY |
默认约束 | 保存数据时,如果未指定该字段的值,则采用默认值 | DEFAULT |
检查约束(8.0.1版本后) | 保证字段值满足某一个条件 | CHECK |
外键约束 | 用来让两张图的数据之间建立连接,保证数据的一致性和完整性 | FOREIGN KEY |
约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。
☃️常用约束
create table user(id int primary key auto_increment,name varchar(10) not null unique,age int check(age > 0 and age < 120),status char(1) default '1',gender char(1)
);
☃️外键约束
添加外键:
CREATE TABLE 表名(字段名 字段类型,...[CONSTRAINT] [外键名称] FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名)
);
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表(主表列名);-- 例子
alter table emp add constraint fk_emp_dept_id foreign key(dept_id) references dept(id);
删除外键:
ALTER TABLE 表名 DROP FOREIGN KEY 外键名;
❄️❄️外键删除/更新行为
更改删除/更新行为:
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES 主表名(主表字段名)
ON UPDATE 行为 ON DELETE 行为;