目录
1、什么是约束?
约束是一种自动保持数据库完整性的一种方法,定义了数据库表及表字段中数据的限制条件,约束分为列级约束和表级约束,区别如下:
2、约束特点
- 主键约束(Primay Key Coustraint):字段值唯一并且不为空。
- 唯一约束(Unique Counstraint):字段值唯一,值可为空,并且表中可存在多个null值。
- 检查约束(Check Counstraint):对字段值进行长度、大小等限制。
- 外键约束(Foreign Key Counstraint):建立两个表之间的关联关系。主表字段值必须是唯一的。
- 默认(Default Counstraint):为字段设置默认值。当添加多个约束时,默认约束必须为第一个。
- 非空约束:限定字段值不为空。
3、创建约束
3.1、建表时创建列级约束
-- 创建列级约束
create table student_one(
stuid number primary key, -- 主键约束
studentno varchar2(100) unique, -- 唯一约束
studentname varchar2(200) not null check(length(studentname) > 2), -- 非空约束 检查约束 (多个约束通过空格分开)
createtime date default sysdate -- 默认约束
);
3.2、建表时创建表级约束
create table class_one(
classid number primary key, -- 主键约束
classname varchar2(100) unique -- 唯一约束
);
-- 创建表级约束
create table student_two(
stuid number,
studentno varchar2(100),
studentname varchar2(200) not null, -- 非空约束
createtime date default sysdate, -- 默认约束
classid number,
primary key(stuid), -- 主键约束
unique(studentno), -- 唯一约束
check(length(studentname) > 2), -- 检查约束
foreign key(classid) references class_one(classid)-- 外键约束 (多个约束通过逗号分开)
);