资源描述:
《实验十用户自定义完整性》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验十用户自定义完整性1、实验目的学习用户自定义约束,并实践用户自定义完整性,利用SQL语言用短语NOTNULL、UNIQUE.CHECK保证用户定义完整性。2、实验内容(建议将表改成Teachers,相应属性以T开始命名,如Tname)立Teacher表。建立表Teacher,注意跟前面所建立的Teacher区分开来,⑴创建Worker,Teacher表,并自定义2个约束U1以及U2,其中U1规定WnameTname字段唯一,U2规定Wage,Tage(级别)字段的上限是28。(2)在Worker,Teacher表中插入一条合法记录。(3
2、)演示插入违反U2约束的例子,U2规定元组的Wage,Tage属性的值必须<=28o(4)去除U2约束。(5)重新插入(3)中想要插入的数据,由于去除了U2约束,所以插入成功。(6)创建规则Rule_sex,规定插入或更新的值只能是M或F,并绑定到WorkerTeacher的WsexTsex字段。(7)演示违反规则Rule_sex的插入操作。3、实验步骤以系统管理员或sa帐号登录到SSMS,在新建查询窗口下输入如下命令,运行并观察结果。(1)在新建查询窗口屮输入如下SQL语句:USEUniversity_MisCREATETABLETeac
3、her(TnoCHAR(5),TnameCHAR(8)CONSTRAINTU1UNIQUE,TsexCHAR(l),TageINTCONSTRAINTU2CHECK(Tage<=28),TdeptCHAR(20),CONSTRAINTPK.TeacherPRIMARYKEY(Tno))°1913d!W
4、lI・l迴圉ttJ==
5、审审=
6、6丁一SQLQueryl.sql-(loc...(dell-PCdell(52))*USEUniversity_MisCREATETABLETeacher(TnoCHAR(5),TnameCHAR(8)CON
7、STRAINTU1UNIQUE,TsexCHAR(l)zTageINTCONSTRAINTU2CHECK(Tage<=28)zTdeptCHAR(20),CONSTRAINTPKTeacherPRIMARYKEY(Tno))(1)在新建查询窗口中输入如下SQL语句USEUniversity_MisINSERTINTOTeacher(Tno,Tname,Tsex,Tage,Tdept)VALUES(T01',‘李用后勤部')SELECT*FROMTeacher■'■'■SQLQueryl.sql^(loc...(dell-PCdell(52
8、))*日USEUniversity_Mis白INSERTINTOTeacher(TnorTnamerTsex9、T01
10、李用M14后勤部(2)在新建查询窗口中输入如下SQL语句USEUniversity_MisINSERTINTOTeacher(Tno,Tname,Tsex,Tage,Tdept)Values('T02','王勇,,M,3&,后勤部JSELECT*FROMTeacherSQLQueryl.sq
11、l・(loc...(dell-PCdell(52))*日USEUniversity_Mis白INSERTINTOTeacher(TnozTname,TsexzTaqezTdept)-Values(tT02,,f王勇,JMJ38J后勤部*)SELECT*FROMTeacher(
12、—」ll祈结果liT消息
13、消息547,级别16,状态0,第2行INSERT语句与CHECK约束”U2-冲突。该冲突发生于数据库MUniversity_MisM,表wdbo.Teacher*TnoTnameTsexTa...TdeptIT01””
14、李用M14后勤部T0
15、2“‘王勇M38后勤部(6)在新建查询窗口中输入如下SQL语句USEUniversity_Mis,column'Tage*o语句已终止。'、'"(1行受影响)(1)在新建查询窗口屮输入如下SQL语句USEUniversity_MisALTERTABLEteacherDROPU2SQLQueryl.sql匸(loc-(dell-PCdell(52))*USEUniversity_MisALTERTABLEteacherDROPU2(2)在新建查询窗口中输入如下SQL语句USEUniversity_MisINSERTINTOTeacher(T
16、no,Tname,Tsex,Tage,Tdept)VALUES(T02','王勇后勤部')SELECT*FROMTeacherSQLQueryl.sql-(loc...(dell