数据库中添加表的约束(Including Constraints)

来源:互联网 发布:编程专家的微视频 编辑:程序博客网 时间:2024/05/21 07:33

为了实现数据库中数据的完整性防止非法的数据被插入,造成数据完整性的破坏,管理员和开发人员就必须定义表的完整性规则。

首先介绍约束种类:

ORACLE支持五种类型的完整性约束
NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值.
CHECK (检查)--检查在约束中指定的条件是否得到了满足.
UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的.
PRIMARY KEY (主键)--用来唯一的标识出表的每一行,并且防止出现NULL值,一个表只能有一个主键约束.
POREIGN KEY (外部键)--通过使用公共列在表之间建立一种父子(parent-child)关系,在表上定义的外部键可以指向主键或者其他表的唯一键.

那么如何添加各种约束呢,最快的方法就是在创建表的时候就定义了约束,

例子如下:

create table key_test(

id number(10) primary key,//定义主键约束

name varchar2(10) NOT null,//定义非空约束

wife_id number(10) unipue,//定义了唯一性约束

c_id number(5) foreign key references class(id),//定义外键约束,假设表class存在,将class表中的id作为本表中的外键约束

gender varchar2(4),

constraint check_key_name check (gender in ('男','女')//定义表的check约束

);

 

下面在students表中添加约束。

    1、创建表

CREATE TABLE students

(student_id    VARCHAR2(10) NOT NULL,

student_name  VARCHAR2(30) NOT NULL,

college_major VARCHAR2(15) NOT NULL,

status        VARCHAR2(20) NOT NULL,

state         VARCHAR2(2),

license_no    VARCHAR2(30)) TABLESPACE student_data;

 

    2、创建主键

ALTER TABLE students

ADD CONSTRAINT pk_students PRIMARY KEY (student_id)

USING INDEX TABLESPACE student_index;

 

    3、创建Unique约束

ALTER TABLE students

ADD CONSTRAINT uk_students_license

UNIQUE (state, license_no)

USING INDEX TABLESPACE student_index;

 

    4、创建Check约束

ALTER TABLE students

ADD CONSTRAINT ck_students_st_lic

CHECK ((state IS NULL AND license_no IS NULL) OR

(state IS NOT NULL AND license_no is NOT NULL));

 

    5、创建外键约束

ALTER TABLE students

ADD CONSTRAINT fk_students_state

FOREIGN KEY (state) REFERENCES state_lookup (state);

原创粉丝点击