前言:
而今看官们对“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。