龙空技术网

MySQL——约束

夜刀神碎 52

前言:

而今看官们对“mysql添加约束字段不小于0”可能比较注意,你们都需要学习一些“mysql添加约束字段不小于0”的相关资讯。那么小编同时在网摘上收集了一些有关“mysql添加约束字段不小于0””的相关内容,希望看官们能喜欢,朋友们快快来学习一下吧!

一、概述

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);
验证外键

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

删除外键

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。

标签: #mysql添加约束字段不小于0 #mysql删除约束怎么写 #mysql如何删除约束