《数据库完整性约束.doc》由会员分享,可在线阅读,更多相关《数据库完整性约束.doc(13页珍藏版)》请在金锄头文库上搜索。
1、数据库完整性约束第一部分:创建如下两张表student和course:学生表中:有如下字段与约束要求: sno/*列级完整性约束,设置sno属性为主键*/ sname /*列级完整性约束,要求sname属性的值唯一*/ ssex /*DEFAULT默认值约束,CHECK约束限制ssex属性的取值范围*/ sage /*检查约束的实现,范围可以自行定义*/ sdeptCREATE TABLE STUDENT(SNO INT CONSTRAINT STUDENT_SNO_PK PRIMARY KEY,SNAME VARCHAR(10) UNIQUE,SSEX VARCHAR(2) DEFAULT
2、男 CONSTRAINT STUDENT_SSEX_CHK CHECK(SSEX IN(男, 女),SAGE INT CONSTRAINT STUDENT_SAGE_CHK CHECK(SAGE = 0 AND SAGE = 0 AND GRADE = 90000 AND SNO = 0 AND SAGE =30),SSEX NVARCHAR2(4) CONSTRAINT SSEX_CHECK CHECK(SSEX IN (男, 女),CONSTRAINT SNO_PK PRIMARY KEY(SNO);二、 删除约束三、删除其中某条约束ALTER TABLE STUDENT_E10 DROP
3、 CONSTRAINT XXX;四、 管理其他约束SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME = STUDENT_E10;准备工作:创建没有任何约束的表dept1. 部门编号 数值型2. 部门名称 字符型CREATE TABLE DEPT (DNO INT,DNAME VARCHAR(20);1、 增加删除空值非空值约束,并观察结果ALTER TABLE DEPT MODIFY 列名 NULL/NOT NULL;SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = DEPT;2、 增加删除主键约
4、束,并观察约束在哪里ALTER TABLE DEPT ADD/DROP CONSTRAINT 约束名 PRIMARY KEY(列名);SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = DEPT;3、 增加删除唯一约束,并观察约束在哪里ALTER TABLE DEPT ADD/DROP CONSTRAINT 约束名 UNIQUE(列名);SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = DEPT;4、 增加删除默认值约束,并观察约束在哪里ALTER TABLE DEPT MODIFY/DROP 列
5、名 DEFAULT(默认值);SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = DEPT;5、 增加删除检查约束,并观察约束在哪里要求部门名称末尾一定要有部。如业务部ALTER TABLE DEPT ADD/DROP CONSTRAINT 约束名 CHECK(DNAME LIKE %部);SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = DEPT;6、 增加删除外键约束,并观察约束在哪里ALTER TABLE DEPT ADD/DROP CONSTRAINT 约束名 FOREIGN KEY(列名
6、) REFERENCES 表名(列名);第二部分:创建表book,用于记录书本信息,要求字段如下-编号:用于记录书本的编号书名:记录书名,不超过200个字符出版社编号:编号,从出版社表引用作者编号:编号,从作者表引用CREATE TABLE BOOK (BID INT,BNAME VARCHAR(200) CONSTRAINT BNAME_CHECK CHECK(LENGTH(BNAME) = 200),PID INT,AID INT,CONSTRAINT PID_FK FOREIGN KEY(PID) REFERENCES PUBLISHER(PID),CONSTRAINT AID_FK F
7、OREIGN KEY(AID) REFERENCES AUTHOR(AID)2、创建表publisher,用于记录出版社信息。-编号:出版社的编号。如:1、2、3、4出版社名字:记录出版社的名字,不操作200个字符出版社地址:记录出版社地址,不超过200个字符。CREATE TABLE PUBLISHER (PID INT CONSTRAINT PID_PK PRIMARY KEY,PNAME VARCHAR(200) CONSTRAINT PNAME_CHECK CHECK(LENGTH(PNAME) = 200),PADDR VARCHAR(200) CONSTRAINT PADDR_CHECK CHECK(LENGTH(PADDR) = 200)3、创建表author,用于记录书籍的作者信息-编号:用于记录作者的编号姓名:用于记录作者的名字联系地址:用于记录该作者的联系地址CREATE TABLE AUTHOR (AID INT CONST