JavaWeb开发之——约束-概述及示例(18)
一 概述
- 约束概述和分类
- 约束示例
二 约束概述和分类
2.1 约束的概念
- 约束是用于表中列上的规则,用于限制加入表的数据
- 约束的存在保证了数据库中数据的正确性、有效性和完整性
2.2 约束的分类
约束名称 | 描述 | 关键字 |
---|---|---|
非空约束 | 保证列中所有数据不能有null值 | not null |
唯一约束 | 保证列中所有数据各不相同 | unique |
主键约束 | 主键是一行数据的唯一标识,要求非空且唯一 | primary key |
检查约束 | 保证列中的值满足某一条件 | check |
默认约束 | 保存数据时,未指定值则采用默认值 | default |
外键约束 | 外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性 | foreign key |
Tips:MySQL不支持检查约束
三 约束示例-表格创建
3.1 根据需求,为表添加合适的约束
1 | -- 员工表 |
3.2 添加约束过程
员工id,主键且自增长
1 | id int, -- 员工id,主键且自增长 |
员工姓名,非空并且唯一
1 | ename varchar(50), -- 员工姓名,非空并且唯一 |
入职日期,非空
1 | ename varchar(50), -- 员工姓名,非空并且唯一 |
工资,非空
1 | salary double(7,2), -- 工资,非空 |
奖金,如果没有奖金默认为0
1 | bonus double(7,2) -- 奖金,如果没有奖金默认为0 |
3.3 修改后约束
1 | drop table if exists emp; |
四 约束示例
4.1 演示主键约束:非空且唯一
非空演示
SQL指令
1 | insert into emp(id,ename,joindate,salary,bonus) values(null,'张三','1999-11-11',8800,5000); |
异常信息
1 | 1048 - Column 'id' cannot be null |
唯一演示
SQL指令
1 | insert into emp(id,ename,joindate,salary,bonus) values(1,'张三','1999-11-11',8800,5000); |
异常信息
1 | 1062 - Duplicate entry '1' for key 'emp.PRIMARY' |
4.2 默认约束
SQL指令
1 | insert into emp(ename,joindate,salary,bonus) values('李四','1999-11-01',8800,5000); |
说明:bonus字段因为有default设置,默认为0.0