数据库笔记链接
1.概念:约束的作用于表中字段上的规则,用于现在存储在表中的数据
2.目的:保证数据库中数据的正确、有效性和完整性。
3:分类:
主键约束(PRIMARY KEY,缩写 PK)
是数据库中最重要的一种约束,其作用是约 束表中的某个字段可以唯一标识一条记录。因此,使用主键约束可以快速查找表中的记录。
就像人的身份证、学生的学号等等,设置为主键的字段取值不能重复(唯一),也不能为空,否则无法唯一标识一条记录。
auto_increment字段
我们通常希望在每次插入新记录时,自动地创建主键字段的值。不必再输入设置改字段的值,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。
-- 通过上面的信息创建一个新表
create table user(
id int primary key auto_increment, -- 主键, 自动增长
name varchar(10) not null unique, -- 非空, 唯一
age int check(age > 0 && age <= 120), -- 大于0且小于等于120
status char(1) default('1'),
gender char(1) check(gender in('男', '女'))
) comment '学生信息表';
外键约束
MySQL的外键约束用来在两个表数据之间建立链接,其中一张表的一个字段被另一张表中对应的字段约束。也就是说,设置外键约束至少要有两种表,被约束的表叫做从表(子表),另一张叫做主表(父表),属于主从关系。
其中主表中的关联字段叫做主键,外表中的关联字段叫做外键。
外键约束主要作用就是能够让表与表之间的数据建立关联,使数据更加完整,关联性更强。
-- 添加外键方法
alter table 子表名 add constraint 外键名 foreign key (外键字段名) references 主表(主表列名);
-- 删除外键
alter table 子表名 drop foreign key 外键名;
外键删除/更新的行为
alter table 表名 add constraint 外键名称 froeign key(外键字段名) references 主表名(主表字段名)
on update cascade on delete cascade; -- 约定更新或删除的行为,此处约定为cascade行为
-- 这里删除主表中的记录信息,子表中的一整条信息都会随之删除
-- 如果删除使用另一个行为, set null
-- 主表删除后,子表外键信息仅变为null,其他不发生改变。