一、约束的概述
1.概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
2.目的:保证数据库中数据的正确、有效性和完整性。
3.分类:
约束 | 描述 | 关键字 |
---|---|---|
非空约束 | 限制该字段的数据不能为null | NOT NULL |
唯一约束 | 保证该字段的所有数据都是唯一、不重复的 | UNIQUE |
主键约束 | 主键是一行数据的唯一标识,要求非空且唯一 | PRIMARY KEY |
默认约束 | 保存数据时,如果未指定该字段的值,则采用默认值 | DEFAULT |
检查约束(8.0.1版本后) | 保证字段值满足某一个条件 | CHECK |
外键约束 | 用来让两张图的数据之间建立连接,保证数据的一致性和完整性 | FOREIGN KEY |
约束是作用于表中字段上的,可以再创建表/修改表的时候添加约束。
常用约束:
约束条件 | 关键字 |
---|---|
主键 | PRIMARY KEY |
自动增长 | AUTO_INCREMENT |
不为空 | NOT NULL |
唯一 | UNIQUE |
逻辑条件 | CHECK |
默认值 | DEFAULT |
二、约束的案例
建表语句如下:
create table user(
id int primary key auto_increment comment '主键',
name varchar(10) not null unique comment '姓名',
age int check ( age > 0 && age <= 120 ) comment '年龄',
status char(1) default '1’comment '状态',
gender char(1) comment '性别'
)comment '用户表;
三、外键约束
概念:
外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。
案例:
员工表emp的dept_id(部门id)对应部门表dept的id,其中dept为主表
alter table emp add constraint fk_emp_dept_id foreign key(dept_id) references dept(id);
四、总结
MySQL数据库提供了多种类型的约束,用于确保数据的完整性和一致性。以下是一些常见的MySQL数据库约束:
-
主键约束(PRIMARY KEY):主键是用来唯一标识表中每一行的列或列组合。它必须具有唯一性且不允许为空值。
-
唯一约束(UNIQUE):唯一约束用于确保某一列或列组合的取值在表中是唯一的,即不允许重复值。与主键不同,唯一约束可以允许空值。
-
外键约束(FOREIGN KEY):外键用于建立表之间的关联关系。它指定一个或多个列作为引用另一个表的主键,以确保引用完整性。外键约束可以防止插入无效的数据,还可以在关联的表上进行级联操作。
-
非空约束(NOT NULL):非空约束用于限制某一列不能存储空值。它确保该列必须始终包含有效数据。
-
默认约束(DEFAULT):默认约束用于定义当未显式指定值时,某一列将自动使用的默认值。
-
检查约束(CHECK):检查约束用于定义一条逻辑表达式,以确定插入或更新数据时所允许的值范围。如果表达式的结果为false,则会拒绝插入或更新操作。
这些约束可以在创建表时定义,也可以在已存在的表上进行修改。它们能够帮助维护数据的完整性,提供更强大的数据验证和保护机制。通过使用适当的约束,可以确保数据库中的数据符合预期,并减少错误和数据不一致的风险。