约束(constraint)

时间:2020-03-24
本文章向大家介绍约束(constraint),主要包括约束(constraint)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

--not null  非空

--unique  唯一

--primary key 主键

--foreign key 外键

--check  检查

非空约束只能建立在列上

--not null  非空

create table emp3(
id number(10) constraint emp3_id_nn not null,
name varchar2(20) not null,
salary number(10,2)
);

--unique  唯一

create table emp5(
id number(10) constraint emp3_id_uk unique,
name varchar2(20) constraint emp5_nn not null,
email varchar2(20),
salary number(10,2),
--表级约束
constraint emp3_email_uk  unique(email)
);

--primary key 主键  自身也有非空性,唯一性

create table emp7(
id number(10) constraint emp7_id_pk primary key,
name varchar2(20) constraint emp7_nn not null,
email varchar2(20),
salary number(10,2),
--表级约束
constraint emp7_email_uk  unique(email)
);
create table emp8(
id number(10),
name varchar2(20) constraint emp8_nn not null,
email varchar2(20),
salary number(10,2),
--表级约束
constraint emp8_email_uk  unique(email),
constraint emp8_id_pk  primary key(id)
);

--foreign key 外键

create table emp9(
--列级约束 id
number(10), name varchar2(20) constraint emp9_nn not null, email varchar2(20), salary number(10,2), department_id number(10), --表级约束 constraint emp9_email_uk unique(email), constraint emp9_id_pk primary key(id), constraint emp9_dept_id_fk foreign key(department_id) references departments(department_id) );

foreign key约束的 关键字:

--foreign key  :在表级指定子表中的列

--referencrces :标示在父表中的列

-- on  delete cascade(级联删除) :当父表中的列被删除时, 子表中对应的列也被删除

-- on delete set null(级联置空):当子表中相应的列置空

--check  检查

create table emp10(
id number(10),
name varchar2(20) constraint emp10_nn not null,
email varchar2(20),
salary number(10,2) check(salary>1500 and salary<30000),
department_id  number(10),
--表级约束
constraint emp10_email_uk  unique(email),
constraint emp10_id_pk  primary key(id),
constraint emp10_dept_id_fk  foreign key(department_id) references departments(department_id)on delete cascade
);

使用alte table语句:

                      添加或删除约束,但不能修改约束 :  

                                                                           修改  -- alter table emp5 modify(salary  number(10,2)  not null);

                                                                           删除  --  alter  table  emp5  drop  constraint emp5_name_nn ;   

                                                                           添加 --  alter  table  emp5  add  constraint emp5_uk unique(name) ;                

                      有效化或无效化:

                                                                           失效 --  alter  table  emp3  disable  constraint emp3_email_uk ;

                                                                           有效 --  alter  table  emp3  enable  constraint emp3_email_uk ;

                      添加not null 约束要使用modify语句

原文地址:https://www.cnblogs.com/afangfang/p/12559161.html