《实验五 - 关系模型的完整性约束.ppt》由会员分享,可在线阅读,更多相关《实验五 - 关系模型的完整性约束.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验五实验五关系模型的完整性约束关系模型的完整性约束【实验目的实验目的】o认识完整性约束对数据库的重要性认识完整性约束对数据库的重要性o掌握实体完整性的创建、修改、维护掌握实体完整性的创建、修改、维护n掌握创建掌握创建PRIMARY KEY、UNIQUE约束的约束的方法以及创建方法以及创建IDENTITY属性列的方法。属性列的方法。o掌握参照完整性的创建、修改、维护掌握参照完整性的创建、修改、维护n掌握创建主表和字表关联关系的方法,以及通掌握创建主表和字表关联关系的方法,以及通过外键实现参照完整性约束过外键实现参照完整性约束o掌握域完整性的创建、修改、维护掌握域完整性的创建、修改、维护n掌握创
2、建掌握创建DEFAULT约束和约束和CHECK约束约束实验实验5.1 实体完整性约束实体完整性约束o交互式为数据库表交互式为数据库表jx_Stujx_Stu创建创建PRIMARY KEYPRIMARY KEY约束约束n打开打开“表设计器表设计器”创建主键(小钥匙)创建主键(小钥匙)o交互式创建数据库表交互式创建数据库表TEST_SCTEST_SC,并创建,并创建PRIMARY KEYPRIMARY KEY约束约束n“新建表新建表”创建主键创建主键实验实验5.1 实体完整性约束实体完整性约束o用用SQLSQL为现有表为现有表jx_Teajx_Tea在在TnoTno列上创建列上创建PRIMARY
3、KEYPRIMARY KEY约束约束n打开打开“表设计器表设计器”,确认表,确认表jx_Teajx_Tea中的中的TnoTno列列的的“允许空允许空”属性为属性为“非空非空”(即没有(即没有),),然后保存退出然后保存退出“表设计器表设计器”。n打开查询分析器,输入下列打开查询分析器,输入下列SQLSQL语句语句oALTER TABLE ALTER TABLE jx_Teajx_TeaADD ADD CONSTRAINTCONSTRAINT PK_TNO PK_TNO PRIMARY PRIMARY KEYKEY(Tno(Tno)实验实验5.1 实体完整性约束实体完整性约束o用用SQLSQL创
4、建数据库表创建数据库表TEST_CTEST_C,并以列约束形,并以列约束形式创建式创建PRIMARY KEYPRIMARY KEY约束约束nCREATE TABLE TEST_C(CREATE TABLE TEST_C(CnoCno char(2)char(2)CONSTRAINT PK_TEST_C CONSTRAINT PK_TEST_C PRIMARY KEYPRIMARY KEY,CnameCname char(10),char(10),CtimeCtime tinyinttinyint)实验实验5.1 实体完整性约束实体完整性约束o用用SQLSQL创建数据库表创建数据库表TEST_T
5、CTEST_TC,并以表约束,并以表约束形式创建形式创建PRIMARY KEYPRIMARY KEY约束约束nCREATE TABLE TEST_TC(CREATE TABLE TEST_TC(TnoTno char(2),char(2),CnoCno char(2),char(2),CONSTRAINT PK_TEST_TC PRIMARY KEY CONSTRAINT PK_TEST_TC PRIMARY KEY(TnoTno,CnoCno)实验实验5.1 实体完整性约束实体完整性约束o交互式为现有表交互式为现有表TEST_TC中的中的Cno和和Tno列创建列创建“UNIQUE约束约束”n
6、打开打开TEST_TC表的表的“索引索引/键键”对话框对话框实验实验5.1 实体完整性约束实体完整性约束实验实验5.1 实体完整性约束实体完整性约束o用用SQL为现有表为现有表jx_Course中的中的Cname列创列创建建“UNIQUE约束约束”n?实验实验5.1 实体完整性约束实体完整性约束o交互式为现有表交互式为现有表TEST_SCTEST_SC增加新列增加新列id_scid_sc,并设置此列属性为并设置此列属性为IDENTITYIDENTITYn*identity*identity属性属性可以自动为表生成可以自动为表生成行号行号n注意:经常更新注意:经常更新记录的表,不要建记录的表,不
7、要建立立IDENTITYIDENTITY列列实验实验5.1 实体完整性约束实体完整性约束实验实验5.1 实体完整性约束实体完整性约束o用用SQL为现有表为现有表TEST_TC增加新列增加新列id_tc,并设置此列属性为并设置此列属性为identityn?o交互式删除现有表交互式删除现有表TEST_SC的主键的主键PK_TEST_SC并取消并取消id_sc列的标识属性列的标识属性o用用SQL删除表删除表jx_course中中Cname列的列的UNIQUE约束约束UNIQUE_Cn?实验实验5.2 参照完整性约束参照完整性约束o交互式创建表交互式创建表jx_Stu和表和表jx_SelCourse之
8、间之间的参照关系的参照关系n打开表打开表jx_SelCourse的的“管理关系管理关系”对话框对话框实验实验5.2 参照完整性约束参照完整性约束注意:建立外键关系前,一定要先在jx_Stu中对Sno建立PK实验实验5.2 参照完整性约束参照完整性约束o用用SQL创建表创建表jx_Tea与与jx_TeaCourse之间之间的参照关系的参照关系nALTER TABLE jx_TeaCourse WITH NOCHECKADD CONSTRAINT FK_T_TCFOREIGN KEY(Tno)REFERENCES T(Tno)ON DELETE CASCADE实验实验5.2 参照完整性约束参照完整
9、性约束o创建数据库创建数据库jxdb中中5个表之间的关联关系图个表之间的关联关系图n右键单击数据库右键单击数据库jxdb下的对象下的对象“关系图关系图”,选,选择创建择创建“新建数据库关系图新建数据库关系图”实验实验5.2 参照完整性约束参照完整性约束o添加数据库表添加数据库表实验实验5.2 参照完整性约束参照完整性约束o查看已存在的表关系查看已存在的表关系实验实验5.2 参照完整性约束参照完整性约束oJx_Tea与与jx_TeaCourse之间的关系之间的关系实验实验5.2 参照完整性约束参照完整性约束o通过通过Cno创建表创建表jx_Course和和jx_TeaCourse之间的一对多关联
10、关系之间的一对多关联关系n在表在表jx_Course中的中的Cno字段上,单击并按住字段上,单击并按住鼠标左键,然后拖动到表鼠标左键,然后拖动到表jx_TeaCourse中的字中的字段段Cno上,松开鼠标左键,打开上,松开鼠标左键,打开“管理关系管理关系”窗口,观察窗口中的各项值。窗口,观察窗口中的各项值。实验实验5.2 参照完整性约束参照完整性约束o通过通过Cno创建表创建表jx_Course和和jx_SelCourse之间的一对多关联关系之间的一对多关联关系o保存关系图。保存关系图。o思考思考n怎样交互式的删除关联关系呢?怎样交互式的删除关联关系呢?实验实验5.3 域完整性约束域完整性约束
11、o交互式为现有数据库表交互式为现有数据库表jx_Tea创建创建DEFAULT和和CHECK约束约束n要求:要求:CHECK约束对已有数据不做检查约束对已有数据不做检查n为性别列为性别列Tgender设置设置DEFAULT约束值约束值“男男”n设置设置“CHECK约束约束”表达式表达式o(Tprof=教授教授 and Tcomm=4000 or Tprof=副教授副教授 and Tcomm=2000 or Tprof=讲师讲师 and Tcomm=1500 or Tprof=助教助教 and Tcomm=1000)实验实验5.3 域完整性约束域完整性约束实验实验5.3 域完整性约束域完整性约束实
12、验实验5.3 域完整性约束域完整性约束o用用SQL给现有数据表给现有数据表jx_Stu创建创建CHECK约约束束n要求:本科生的年龄限制在要求:本科生的年龄限制在1440岁之间,此岁之间,此约束对表约束对表S中已有数据做检查。中已有数据做检查。n?实验实验5.3 域完整性约束域完整性约束o用用SQL创建一数据库表创建一数据库表TEST_S,包含,包含DEFAULT和和CHECK约束约束n要求:设置性别的要求:设置性别的DEFAULT约束为约束为男男,CHECK约束为性别为约束为性别为男男或或女女;设置;设置年龄的年龄的DEFAULT约束为约束为18,CHECK约束为约束为年龄在年龄在1440之间之间实验实验5.3 域完整性约束域完整性约束o用用SQL删除表删除表jx_Tea中的中的Tprof和和Tcomm之之间的间的CHECK约束约束n?o交互式删除表交互式删除表TEST_S中列中列Sgender的的DEFAULT约束和列约束和列Sage的的CHECK约束约束实验报告实验报告o写出以上练习中要求用写出以上练习中要求用SQL语句实现的操语句实现的操作作