约束
文章目录
1.非空约束(not null)
非空约束 限定某个字段不能为null
create table testNull(
id number(3),
name varchar2(20) not null
);
2.默认值的约束(default)
如果字段没有给值给默认值
default + "默认值"
create table testDefaul(
id number(10) not null,
name varchar2(20) default '老宋',
age number(2) default 18
);
3.唯一约束(unique)
保证某个字段的具体值是唯一的
create table testUnique(
id number(5) unique,
name varchar2(20)
);
3.1注意事项
- 唯一性可以为
null
,2个都为null
不算违背了唯一性原则一般使用unique
要加not null
约束 - 一个字段可以添加多个约束
unique not null
4.主键约束(primary key)
主键类型 unique + not null
语法: 字段primary key;
create table testPrimary(
id number(3) primary key,
name varchar2(20)
);
4.1添加主键
- 代码设置
alter table 表名 add constraint 标识符 primary key(字段名称);
- 使用视图工具
4.2联合主键
多个字段联合其来成为主键
4.3注意事项
- 主键唯一性,一张表只能有一个主键
- 一张表可以有多个
unique not null
5.外键约束
外键: 把2张表进行关联 , 从表中重复出现,在主表中作为主键存在
--主表: 一方
create table t_class(
cid number(3) primary key,
cname varchar2(20)
);
--从表: 多方
create table t_stu(
tid number(3) primary key,
sname varchar2(20),
-- 添加 主表的pk 字段
cid number(3),
-- 设置 外键 (从表和 主表进行关联)
constraint fk_stu_class foreign key (cid) references t_class(cid)
);
fk_stu_class --外键的标识符 外键取名
foreign key --定义外键
references --关联那个表的那个字段
--创建表以后 如果设置外键(命令)
-- 创建表完成后添加外键
alter table t_stu add constraint fk_stu_class foreign key(classId) references t_class(cid);
5.1注意事项:
-
外键可以在从表中重复出现 ,他在主表中是主键
-
一张表可以有多个外键
-
外键可以为
null
-
外键的作用是关联多表,可以建立表之间的关系 (一对一 一对多 多对多)
-
删除主表时候如果从表有使用主表的数据是不能删除的,从表的数据可以直接删除
-
2表关联了先删除从表再删除主表
-
外键是多表查询时必要条件
-
开发过程中建议是逻辑外键 (有逻辑关系不用设置外键关联)
6.check 约束 (了解)
check: 保证我们的字段按照一定的格式在指定的范围内存储
create table t_person(
sname varchar2(20),
sage number(3) check(sage > 20) --规定age > 20
sage number(3) check(sage between 20 and 30) --规定age 在 20 - 30 之间
sage number(3) check(sage in(18,19,20)) --规定age 必须在 18,19,20
);