Oracle(九)五种约束

Posted on 2021-04-08 08:15  MissRong  阅读(143)  评论(0)    收藏  举报

Oracle(九)五种约束

1、not null---------------------------

create table myemp( empno number(4),
ename varchar(10) not null,
hiredate date constraint emp_hiredate_nn not null
);

insert into myemp values(7075, 'zk', sysdate);
insert into myemp values(7075, null, sysdate);

【这里constraint是定义列级的约束】

2、unique---------------------------------

create table myemp(
empno number(4),
ename varchar(10) not null,
email varchar(20) ,
constraint emp_email_uk unique(email)
);
insert into myemp values(7777, 'z', 'lxr@163.com');
insert into myemp values(7777, 'zz', 'lxr@163.com');


【这里constraint是定义表级的约束】

3、primary key---------------------------------

create table myemp(
  empno number(4),
  ename varchar(10) not null,
  constraint emp_empno_pk primary key(empno)
);
insert into myemp values(7075, 'zk');

注:也可以这样定义--empno number(4) primary key,

4、foreign key---------------------------------

create table myemp(
  empno number(4) primary key,
  ename varchar(10) not null,
  deptno number(2),
  constraint emp_deptno_fk foreign key (deptno)
  references dept(deptno)
);

添加级联删除:

1)on delete cascade

create table myemp(
  empno number(4) primary key,
  ename varchar(10) not null,
  deptno number(2),
  constraint emp_deptno_fk foreign key (deptno)
  references dept(deptno) on delete cascade
);

insert into myemp values(7075, 'zk',80);
insert into myemp values(7077, 'zk',80);
select * from myemp;
部门号为80的删除了之后,myemp中部门号为80的员工也均被删除。
delete from dept where deptno = 80;

2)on delete set null

create table myemp(
  empno number(4) primary key,
  ename varchar(10) not null,
  deptno number(2),
  constraint emp_deptno_fk foreign key (deptno)
  references dept(deptno) on delete set null
);

insert into myemp values(7075, 'zk',70);
insert into myemp values(7077, 'zk',70);
select * from myemp;
部门号为70的删除了之后,myemp中部门号为70的员工的部门号会变成null。
delete from dept where deptno = 70;

5、check约束---------------------------------

create table myemp(
  empno number(4) primary key,
  ename varchar(10) not null,
  sex varchar(5) constraint emp_sex check(sex in ('man','women'))
);

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3