约束简介
约束用于确保数据库数据满足特定的商业逻辑或者企业规则,如果定义了约束,并且数据不符
合约束,那么DML操作(INSERT、UPDA TE、DELETE)将不能成功执行。约束包括NOT NULL、UNIQUE、PRIMARY KEY、FOREING KEY 以及CHECK等五种类型
定义约束
列级约束:
column [CONSTRAINT constraint_name] constraint_type
表级约束:
column ,...,
[CONSTRAINT constraint_name] constraint_type (column,...)
1.定义NOT NULL约束
NOT NULL 约束只能在列级定义,不能在表级定义
例:
CREATE TABLE emp01(
eno INT NOT NULL,
name V ARCHAR2(10) CONSTRAINT nn_name NOT NULL,
salary NUMBER(6,2)
);
2.CREATE TABLE remp01(
Eno INT NOT NULL,
Name varchar2(10) CONSTRAINT nn_name2 NOT NULL,
Salary NUMBER(6,2),
);
上例中,eno列与name列上定义了NOT NULL约束,其中eno列的NOT NULL约束没有指定约束名,而
name列则指定了约束名nn_name。
可以通过查询user_constraints字典来查看所定义的约束,如:
SQL> select constraint_name,constraint_type from user_constraints
2 where table_name='EMP01';
CONSTRAINT_NAME CO
------------------------------------------------------------ --
SYS_C0010618 C
NN_NAME C
可见,没有给约束名的,系统将会自动的定义一个约束名称,其中约束类型中,P:表示主键,R:
表示外键,C表示NOT NULL或CHECK,U表示UNIQUE。且系统中同一方案下的的约束名不能重复