Oracle之约束(这尼玛绝对重点)
1.约束的分类
主键约束一般都在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!
也可以通过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!