MySQL-约束

一、概述

1.概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。

2.目的:保证数据库中数据的正确、有效性和完整性。

3.分类:

二、约束的演示

1.案例:根据下表中的需求,完成表结构的创建。

标红位置为约束和它们的写法。

create table user(
id int primary key auto_increment comment '主键',
name varchar(10) not null unique comment '姓名',
age int check ( age > 0 and age <= 120 ) comment '年龄',
status char(1) default '1' comment '状态',
gender char(1) comment '性别'
)comment '用户表';

验证:

(1)插入初始数据

insert into user (name, age, status, gender)
values ('Tom1',19,'1','男'),('Tom2',25,'0','男');

(2)增加数据

insert into user (name, age, status, gender)
values ('Tom3',19,'1','男')

可以看到,即便不在insert语句中说明id项,新添加的数据也会自动匹配对应增加的id。但是需要注意的是,就算插入数据失败,id也会自增,可能会出现id数和已有数据数量不匹配。

(3)尝试插入错误格式的数据

insert into user (name, age, status, gender)
values (null,19,'1','男');//name值为空

insert into user (name, age, status, gender)
values ('Tom3',19,'1','男');//name值重复

还可以自行尝试插入更多错入格式来观察它的报错。

(4)再次插入正确格式的数据

insert into user (name, age, status, gender)
values ('Tom4',80,'1','男');

(5)不在类型名中声明status,来观察default约束能否产生作用

insert into user (name, age, gender)
values ('Tom5',80,'男');

三、外键约束

1.概念

外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。

下图中的dept_id就被称为外键。

但是上述的表在数据库层面还未建立外键关联,所以是无法保证数据的一致性和完整性的。

2.案例演示

(1)创建数据

部门表:id为主键。

员工表,dept_id作为外键,之后用于关联部门表中的id主键。

(2)添加外键

建好表之后,两张表在数据库层面实际上还没有关联,需要手动关联来添加外键。

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);
  1. 验证外键

尝试阐述部门表中的研发部,报错,因为它关联了员工表,员工表中有绑定了研发部的id。

  1. 删除外键
alter table emp drop foreign key fk1_emp_dept_id;

再次尝试删除部门表中的研发部。

四、外键约束

删除/更新行为

例1:

alter table emp add constraint fk1_emp_dept_id foreign key (dept_id) references dept(id) on update cascade on delete cascade ;

(1)修改科研部的id

(2)删除科研部

例2:

alter table emp add constraint fk1_emp_dept_id foreign key (dept_id) references dept(id) on update set null on delete set null ;

修改科研部的ID,员工表中绑定了科研部的dept_id全部变为null。

展开阅读全文

页面更新:2024-02-28

标签:科研部   研发部   层面   完整性   演示   正确   员工   部门   格式   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top