PLsql小结

1、约束constraint

a、列级约束和表级约束

create table emp2(
id number(10) not null,
name varchar2(20) constraint emp2_name_nn not null,
email varchar2(20)
)

constraint emp2_name_nn是给约束命名,左侧myobject–>constraint目录下有对应约束。
以上是一个列级约束,表级约束如下:

drop table emp2;
create table emp2(
id number(10) constraint emp2_id_nn not null,
name varchar2(20) not null,
salary number(10,2),
constraint emp2_name_uk unique(name)
)

–两者无本质区别。

b、unique 和primary key的区别:
unique允许同时为null,后者不允许。

c、foreign key

drop table emp6;
create table emp6(
id number(10) constraint emp6_id_nn not null,
name varchar2(20) not null,
salary number(10,2),
constraint emp6_name_uk unique(name),
constraint emp6_id_fk foreign key(id) references employees
)

此时,插入数据的id必须在employees表内存在,否则报错。

c、check加限制

drop table emp6;
create table emp6(
id number(10) constraint emp6_id_nn not null,
name varchar2(20) not null,
salary number(10,2) check(salary<30000 and salary>1500),
constraint emp6_name_uk unique(name),
constraint emp6_id_fk foreign key(id) references employees
)

此时插入的salary必须满足check条件。

—疑问:PLsql依赖手机wifi;emp2插入数据会覆盖从前数据;

猜你喜欢

转载自blog.csdn.net/rotating_/article/details/108458428