Oracle约束(1)
导读:什么是约束?约束是表级强制执行的规则,当表中数据有相互依赖性时,可保护数据不被删除。Oracle数据库是一种功能性很强大的数据库系统,Oracle数据库中的数据是绝对要保密的,下文中就为大家介绍Oracle数据库的约束问题。
Oracle 有如下类型的约束:
NOT NULL
UNIQUE Key
PRIMARY KEY
FOREIGN KEY
CHECK
Oracle使用SYS_Cn格式命名约束.
创建约束:
在建表的同时创建
建表后创建
可定义列级或表级约束.
可通过数据字典表查看约束.
建表时创建约束
create table OTL_NICOTINE_GRADE ( ID NUMBER not null, SEASON_NO NUMBER(4) not null, RECEIPT_NO NUMBER(8) not null,
GRADE VARCHAR2(10) not null, PROPORTION NUMBER(5,2) not null, WEIGHT NUMBER(10,2) not null, VALUE NUMBER(12,2) not
null, constraint PK_OTL_NICOTINE_GRADE primary key (ID, GRADE), constraint FK_OTL_NICO_REFERENCE_OTL_CHEC foreign
key (ID) references OTL_CHECK_CHEM (ID) )
建表后添加约束
ALTER TABLE (table_name) ADD ( CONSTRAINT (foreign key constraint name) FOREIGN KEY (field name ) REFERENCES
primary_table_name ( primary_table_primary_index_field )
SQL> create table emplyees(
2 employee_id number(6),
3 last_name varchar2(25) not null,
4 salary number(8,2),
5 commission_pct number(2,2),
6 hire_date date,
7 constraint emp_hire_date_1 not null,
8 CONSTRAINT dept_dname_uk UNIQUE(emp_name)
9 );
表已创建。
SQL>
1 select constraint_name,table_name
2 from dba_constraints
3 where table_name='EMPLYEES'
CONSTRAINT_NAME TABLE_NAME
------------------------------ ------------------------------
SYS_C003012 EMPLYEES
EMP_HIRE_DATE_1 EMPLYEES
定义主键约束PRIMARY KEY
SQL> CREATE TABLE dept(
2 deptno NUMBER(2),
3 dname VARCHAR2(14),
4 loc VARCHAR2(13),
5 CONSTRAINT dept_dname_uk UNIQUE(dname),
6 CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno));
外键约束FOREIGN KEY
SQL> CREATE TABLE emp(
2 empno NUMBER(4),
3 ename VARCHAR2(10) NOT NULL,
4 job VARCHAR2(9),
5 mgr NUMBER(4),
6 hiredate DATE,
7 sal NUMBER(7,2),
8 comm NUMBER(7,2),
9 deptno NUMBER(7,2) NOT NULL,
10 CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)
11 REFERENCES dept (deptno));
外键约束的关键字
FOREIGN KEY
定义子表的哪一列作为外键约束
REFERENCES
指示主表和参照的列
ON DELETE CASCADE
删除主表记录时将子表相关记录删除
- 上一篇:如何调整Oracle性能
- 下一篇:如何在Oracle中用非默认方式创建外键



