![2b72af3c81aef4754ee8d7fd77251f4f.png](https://img-blog.csdnimg.cn/img_convert/2b72af3c81aef4754ee8d7fd77251f4f.png)
知识点太多太杂了,随机一个:
十、 定义约束
1 数据库中的约束类型
– 非空约束(NOT NULL) – 唯一性约束(UNIQUE) – 主键约束(PRIMARY KEY) – 外键约束(FOREIGN KEY) – 用户自定义约束(CHECK)
1.1定义约束原则
创建一个约束:在创建表的同时,或者在创建表之后都可以定义约束。可以给约束起名
字,但是约束名不能相同,必须是唯一的。如果没有为约束起名字,Oracle 服务器将用默
认格式 SYS_Cn 产生一个名字,这里 n 是一个唯一的整数,所以约束名是唯一的。2 定义 NOT NULL 约2.1创建表时定义 NOT NULL 约束
2.1.1示例
create table dept80(id number,name
varchar2(20) not null, salary number
constraint dept80_notn not null);
2.2修改表定义 NOT NULL 约束
2.2.1示例
alter table dept80 modify location_id not
null;3 定义 UNIQUE 约束
3.1创建表时定义 UNIQUE 约束
3.1.1示例
create table dept90(id number constraint
dept90_uk unique,name varchar2(20));
3.2修改表定义 UNIQUE 约束
3.2.1示例
alter table dept90 modify(name unique);
4 定义 PRIMARY KEY 约束4.1创建表时定义 PRIMARY KEY 约束
4.1.1示例
create table dept70(id number constraint
dept70_pk primary key);
4.2修改表定义 PRIMARY KEY 约束
4.2.1示例
alter table dept60 modify(id constraint
dept60_pk primary key);
4.3创建联合主键
4.3.1示例
create table dept50(id number,name
varchar2(20),constraint dept50_pk primary
key(id,name));
5 定义 FOREIGN KEY 约束5.1创建表时定义 FOREIGN KEY
5.1.1示例
create table dept40(id number,d_id
number,constraint dept40_fk foreign key(d_idreferences dept60(id));
5.2修改表定义 FOREIGN KEY
5.2.1示例
alter table dept50 add constraint
dept50_fk foreign key(d_id) references
dept60(id);
6 定义 CHECK 约束
6.1创建表时定义 CHECK 约束
6.1.1示例
create table dept30(id number,salary
number(8,2) constraint dept30_ck check
(salary > 1000));6.2修改表定义 CHECK 约束
6.2.1示例
alter table dept50 add constraint
dept50_ck check(salary > 1000);
7 禁用与启用约束
7.1查看约束
7.1.1示例
select
constraint_name,constraint_type,search_cond
ition from user_constraints where table_name
= 'DEPT40';
7.2禁用约束
7.2.1示例
alter table dept40 disable constraintdept40_ck;
级联禁用
alter table dept60 disable constraint
dept60_pk cascade;
7.3启用约束
7.3.1示例
alter table dept40 enable constraint
dept40_ck;