《数据库原理与应用》实验七:数据库的完整性约束_第1页
《数据库原理与应用》实验七:数据库的完整性约束_第2页
《数据库原理与应用》实验七:数据库的完整性约束_第3页
《数据库原理与应用》实验七:数据库的完整性约束_第4页
《数据库原理与应用》实验七:数据库的完整性约束_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《数据库原理与应用》实验七:数据库的完整性约束《数据库原理与应用》实验七:数据库的完整性约束一、实验目的1.掌握主键约束、外键约束、唯一约束、默认约束及CHECK约束的用法;2.掌握默认值约束的应用;二、实验环境已安装SQLServer2008的计算机;三、实验学时2学时四、实验要求1.熟悉数据库完整性相关概念及约束;2.了解约束、默认值及规则;3.完成实验报告;五、实验内容及步骤实验1:使用SQL语句完成下列操作1.将数据库S-T的表Course的Cno字段定义为主键,约束名称为PK_Cno;altertableCourseaddconstraintPK_Cnoprimarykey(Cno)2.为表course中的字段Cname添加唯一值约束,约束名称为UQ_Cname;altertableCourseaddconstraintUQ_Cnameunique(Cname)3.将数据库S-T的表SC的Sno及Cno字段组合定义为主键,约束名称为PK_SCaltertableSCaddconstraintPK_SCprimarykey(Sno,Cno)4.对于数据表SC的Sno、Cno字段定义为外码,使之与表Student的主码Sno及表Course的主码Cno对应,实现如下参照完整性:1)删除Student表中记录的同时删除SC表中与该记录Sno字段值相同的记录;2)修改Student表某记录的Sno时,若SC表中与该字段值对应的有若干条记录,则拒绝修改;3)修改Course表Cno字段值时,该字段在SC表中的对应值也应修改;4)删除Course表一条记录时,若该字段在在SC表中存在,则删除该字段对应的记录;5)向SC表添加记录时,如果该记录的Sno字段的值在Student中不存在,则拒绝插入;altertableSCaddconstraintFK_SCforeignkey(Sno)referencesStudent(Sno)ondeletecascadeonupdatenoaction,foreignkey(Cno)referencesCourse(Cno)ondeletecascadeonupdatecascadego5.定义默认值约束,要求学生所在系Sdept默认值为“IS”;altertableStudentaddconstraintDF_Sdeptdefault('IS')forSdept6.定义S-T数据库中Student表中学生年龄值在16-25范围内;altertablestudentaddconstraintCK_Sagecheck(Sagebetween16and25)7.定义S-T数据库中Student表中学生姓名长度在2-8之间;altertableStudentaddconstraintCK_Snamecheck(len(Sname)between2and8)8.定义S-T数据库中Student表中学生性别列中只能输入“男”或“女”,默认值为“男”altertableStudentaddconstraintCK_Ssexcheck(Ssexin('男','女')),constraintDF_Ssexdefault('男')forSsex9.定义S-T数据库Student表中学生年龄值默认值为20;altertableStudentaddconstraintDF_Sagedefault20forSage10.修改Student表学生的年龄值约束可以为15-30范围内;altertableStudentdropconstraintCK_SagegoaltertableStudentaddconstraintCK_Sagecheck(Sage>=15andSage<=30)11..分别向S-T数据库的Student、SC、Course表中插入几条数据,检查约束效果。12.删除上述唯一值约束、外键约束及check约束;altertableCoursedropconstraintUQ_CnamegoaltertableSCdropconstraintFK_SCgoaltertableStudentdropconstraintCK_Sno,CK_Sname,CK_Ssex实验2:使用对象资源管理器完成下列操作1.新建数据库DEMO,并新建两张数据表Student、SpecialtyUSEmasterGOIFEXISTS(SELECT*FROMsysdatabasesWHEREname='Demo')DROPDATABASEDemoCREATEDATABASEDemoONPRIMARY(NAME='Demo_data',FILENAME='D:\project\Demo_data.mdf',SIZE=3MB)LOGON(NAME='Demo_log',FILENAME='D:\project\Demo_log.ldf',SIZE=3MB)GOUSEDemoGOIFEXISTS(SELECT*FROMsysobjectsWHEREname='Student')DROPTABLEStudentCREATETABLEStudent(SnointNOTNULL,--学号Snamevarchar(20),--学生姓名Ssexchar(2),--性别SageintNOTNULL,--学生年龄SpecIdintNOTNULL,--专业号,外键Mobilevarchar(11),--电话号码Emailnvarchar(50),--邮箱Provincenvarchar(50)--来自哪个省份)GOUSEDemoGOIFEXISTS(SELECT*FROMsysobjectsWHEREname='Specialty')DROPTABLESpecialtyCREATETABLESpecialty(SpecIdintPRIMARYKEYNOTNULL,--专业号SpecNamevarchar(50)NOTNULL--专业名称)GO2、要求在对象资源管理器中对Student进行如下设置:(1)学号(Sno)为主键(2)姓名(Sname)非空(3)性别(Ssex)只能取男或女(4)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论