热门关键字: jsp web pl/sql pl webwor   →开发工具  操作系统
当前位置 : 无忧IT编程网 > 数据库开发 > Oracle > 正文

ORACLE的索引和约束使用总结

来源:转载作者:无忧时间:08-01-24
Oracle的约束

* 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,但如果某个约束作用于多个字段, 
必须在表级定义约束 
* 在定义约束时可以通过CONSTRAINT关键字为约束命名,如果没有指定,ORACLE将自动为约束建立默认的名称 

定义primary key约束(单个字段) 
create table employees (empno number(5) primary key,...) 

指定约束名 
create table employees (empno number(5) constraint emp_pk primary key,...) 

定义primary key约束(多个字段,在表级定义约束) 
create table employees 
(empno number(5), 
deptno number(3) not null, 
constraint emp_pk primary key(empno,deptno) 
using index tablespace indx 
storage (initial 64K 
next 64K 



ORACLE自动会为具有PRIMARY KEY约束的字段(主码字段)建立一个唯一索引和一个NOT NULL约束,定义PRIMARY KEY约束时可以为它的索引 
指定存储位置和存储参数 ,,

alter table employees add primary key (empno) 
alter table employees add constraint emp_pk primary key (empno) 
alter table employees add constraint emp_pk primary key (empno,deptno) 

not null约束(只能在字段级定义NOT NULL约束,在同一个表中可以定义多个NOT NULL约束) 
alter table employees modify deptno not null/null 

unique约束 
create table employees 
( empno number(5), 
ename varchar2(15), 
phone varchar2(15), 
email varchar2(30) unique, 
deptno number(3) not null, 
constraint emp_ename_phone_uk unique (ename,phone) 


alter table employees 
add constraint emp_uk unique(ename,phone) 
using index tablespace indx 

定义了UNIQUE约束的字段中不能包含重复值,可以为一个或多个字段定义UNIQUE约束,因此,UNIQUE即可以在字段级也可以在表级定义, 
在UNIQUED约束的字段上可以包含空值. 

foreign key约束 

* 定义为FOREIGN KEY约束的字段中只能包含相应的其它表中的引用码字段的值或者NULL值 
* 可以为一个或者多个字段的组合定义FOREIGN KEY约束 
* 定义了FOREIGN KEY约束的外部码字段和相应的引用码字段可以存在于同一个表中,这种情况称为"自引用" 

            

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 验证码: 验证码
查看所有评论
相关文章
站长推荐