资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,实验五,关系模型的完整性约束,【,实验目的,】,认识完整性约束对数据库的重要性,掌握实体完整性的创建、修改、维护,掌握创建,PRIMARY KEY,、,UNIQUE,约束的方法以及创建,IDENTITY,属性列的方法。,掌握参照完整性的创建、修改、维护,掌握创建主表和字表关联关系的方法,以及通过外键实现参照完整性约束,掌握域完整性的创建、修改、维护,掌握创建,DEFAULT,约束和,CHECK,约束,实验,5.1,实体完整性约束,交互式为数据库表,jx_Stu,创建,PRIMARY KEY,约束,打开“表设计器”创建主键(小钥匙),交互式创建数据库表,TEST_SC,,并创建,PRIMARY KEY,约束,“新建表”创建主键,实验,5.1,实体完整性约束,用,SQL,为现有表,jx_Tea,在,Tno,列上创建,PRIMARY KEY,约束,打开“表设计器”,确认表,jx_Tea,中的,Tno,列的“允许空”属性为“非空”(即没有),然后保存退出“表设计器”。,打开查询分析器,输入下列,SQL,语句,ALTER TABLE,jx_Tea,ADD,CONSTRAINT,PK_TNO,PRIMARY,KEY,(Tno,),实验,5.1,实体完整性约束,用,SQL,创建数据库表,TEST_C,,并以列约束形式创建,PRIMARY KEY,约束,CREATE TABLE TEST_C(,Cno,char(2),CONSTRAINT PK_TEST_C PRIMARY KEY,Cname,char(10),Ctime,tinyint,),实验,5.1,实体完整性约束,用,SQL,创建数据库表,TEST_TC,,并以表约束形式创建,PRIMARY KEY,约束,CREATE TABLE TEST_TC(,Tno,char(2),Cno,char(2),CONSTRAINT PK_TEST_TC PRIMARY KEY(,Tno,Cno,),),实验,5.1,实体完整性约束,交互式为现有表,TEST_TC,中的,Cno,和,Tno,列创建“,UNIQUE,约束”,打开,TEST_TC,表的“索引,/,键”对话框,实验,5.1,实体完整性约束,实验,5.1,实体完整性约束,用,SQL,为现有表,jx_Course,中的,Cname,列创建“,UNIQUE,约束”,?,实验,5.1,实体完整性约束,交互式为现有表,TEST_SC,增加新列,id_sc,,并设置此列属性为,IDENTITY,*identity,属性,可以自动为表生成,行号,注意:经常更新,记录的表,不要建,立,IDENTITY,列,实验,5.1,实体完整性约束,实验,5.1,实体完整性约束,用,SQL,为现有表,TEST_TC,增加新列,id_tc,,并设置此列属性为,identity,?,交互式删除现有表,TEST_SC,的主键,PK_TEST_SC,并取消,id_sc,列的标识属性,用,SQL,删除表,jx_course,中,Cname,列的,UNIQUE,约束,UNIQUE_C,?,实验,5.2,参照完整性约束,交互式创建表,jx_Stu,和表,jx_SelCourse,之间的参照关系,打开表,jx_SelCourse,的“管理关系”对话框,实验,5.2,参照完整性约束,注意:建立外键关系前,一定要先在,jx_Stu,中对,Sno,建立,PK,实验,5.2,参照完整性约束,用,SQL,创建表,jx_Tea,与,jx_TeaCourse,之间的参照关系,ALTER TABLE,jx_TeaCourse,WITH NOCHECK,ADD CONSTRAINT FK_T_TC,FOREIGN KEY,(,Tno,),REFERENCES,T(Tno,),ON DELETE CASCADE,实验,5.2,参照完整性约束,创建数据库,jxdb,中,5,个表之间的关联关系图,右键单击数据库,jxdb,下的对象“关系图”,选择创建“新建数据库关系图,”,实验,5.2,参照完整性约束,添加数据库表,实验,5.2,参照完整性约束,查看已存在的表关系,实验,5.2,参照完整性约束,Jx_Tea,与,jx_TeaCourse,之间的关系,实验,5.2,参照完整性约束,通过,Cno,创建表,jx_Course,和,jx_TeaCourse,之间的一对多关联关系,在表,jx_Course,中的,Cno,字段上,单击并按住鼠标左键,然后拖动到表,jx_TeaCourse,中的字段,Cno,上,松开鼠标左键,打开“管理关系”窗口,观察窗口中的各项值。,实验,5.2,参照完整性约束,通过,Cno,创建表,jx_Course,和,jx_SelCourse,之间的一对多关联关系,保存关系图。,思考,怎样交互式的删除关联关系呢?,实验,5.3,域完整性约束,交互式为现有数据库表,jx_Tea,创建,DEFAULT,和,CHECK,约束,要求:,CHECK,约束对已有数据不做检查,为性别列,Tgender,设置,DEFAULT,约束值“男”,设置“,CHECK,约束”表达式,(,Tprof,=,教授,and,Tcomm,=4000 or,Tprof,=,副教授,and,Tcomm,=2000 or,Tprof,=,讲师,and,Tcomm,=1500 or,Tprof,=,助教,and,Tcomm,=1000),实验,5.3,域完整性约束,实验,5.3,域完整性约束,实验,5.3,域完整性约束,用,SQL,给现有数据表,jx_Stu,创建,CHECK,约束,要求:本科生的年龄限制在,1440,岁之间,此约束对表,S,中已有数据做检查。,?,实验,5.3,域完整性约束,用,SQL,创建一数据库表,TEST_S,,包含,DEFAULT,和,CHECK,约束,要求:设置性别的,DEFAULT,约束为,男,,CHECK,约束为性别为男,或女;设置年龄的,DEFAULT,约束为,18,,,CHECK,约束为年龄在,1440,之间,实验,5.3,域完整性约束,用,SQL,删除表,jx_Tea,中的,Tprof,和,Tcomm,之间的,CHECK,约束,?,交互式删除表,TEST_S,中列,Sgender,的,DEFAULT,约束和列,Sage,的,CHECK,约束,实验报告,写出以上练习中要求用,SQL,语句实现的操作,
展开阅读全文