读书人

Oracle之约束(这尼玛绝对着重点)

发布时间: 2012-09-22 21:54:54 作者: rapoo

Oracle之约束(这尼玛绝对重点)
1.约束的分类

主键约束:主键表示是一个唯一的表示,本身不能为空唯一约束:在一个表中只允许建立一个主键约束,而其他列如果不希望出现重复值,则可以使用唯一约束检查约束:检查一个列的内容是否合法|-例如:年龄,只能在0~150随机|-例如:性别,只能是男、女、中性(表示草泥马的性别)非空约束:某字段的内容不能为空外键约束:在两张表中进行约束操作2.主键约束(PRIMARY KEY)

主键约束一般都在id上使用,而且本身已经默认内容不能为空。主键约束可以再建立表的时候指定。

范例:建立person,在pid上增加主键约束

DROP TABLE person ;CREATE TABLE person(pid VARCHAR2(18) ,name VARCHAR2(200) NOT NULL ,age NUMBER(3) NOT NULL ,birthday DATE ,sex VARCHAR2(2) DEFAULT ' ' ,CONSTRAINT person_pid_pk PRIMARY KEY(pid)) ;


4.唯一约束(UNIQUE)

表示一个字段的内容是唯一的,其他列不允许重复。范例:姓名不允许出现重名的现象范例
也可以通过CONSTRAINT关键字进行命名:

5.检查约束(CHECK)

使用检查约束来判断一个列中插入的内容是否合法,例如:年龄的取值,性别的取值范围。


也可以通过CONSTRAINT关键字进行命名:

DROP TABLE book ;DROP TABLE person ;CREATE TABLE person(pid VARCHAR2(18) ,name VARCHAR2(200) NOT NULL ,age NUMBER(3) NOT NULL,birthday DATE ,sex VARCHAR2(2) DEFAULT '男',CONSTRAINT person_pid_pk PRIMARY KEY(pid) ,CONSTRAINT person_name_uk UNIQUE(name) ,CONSTRAINT person_age_ck CHECK(age BETWEEN 0AND 150) ,CONSTRAINT person_sex_ck CHECK(sex IN ('男','女','中'))) ;CREATE TABLE book(bid NUMBER PRIMARY KEY NOT NULL ,bname VARCHAR(30) ,bprice NUMBER(5,2) ,pid VARCHAR2(18) ,CONSTRAINT person_book_pid_fk FOREIGN KEY(pid) REFERENCES person(pid) ON DELETE CASCADE) ;

7.修改约束

语法如下:

ALTER TABLE book ADD CONSTRAINT book_bid_PK PRIMARY KEY(bid) ;ALTER TABLE book ADD CONSTRAINT person_book_pid_fk FOREIGN KEY(pid) REFERENCES person(pid) ONDELETE CASCADE ;












1楼Wentasy昨天 19:31
Perfect!

读书人网 >其他数据库

热点推荐