数据库完整性实验报告_第1页
数据库完整性实验报告_第2页
数据库完整性实验报告_第3页
数据库完整性实验报告_第4页
数据库完整性实验报告_第5页
全文预览已结束

下载本文档

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

文档简介

北京理工大学珠海学院实验报告ZHUHAICAMPAUSOFBEIJINGINSTITUTEOFTECHNOLOGY班级学号姓名指导教师张申勇成绩实验题目数据库完整性一实验目的1.熟悉通过SQL对数据进行完整性控制;2.针对具体应用要求,设计相应的完整性约束。二实验工具SQLServer2005利用SQLServer2005SSMS及其SQL查询编辑器。三实验内容和要求使用SQL对数据进行完整性控制〔3类完整性、CHECK短语、CONSTRAIN子句、触发器〕。用实验证实,当操作违反了完整性约束条件时,系统是如何处理的。根据以下要求认真填写实验报告,记录所有的实验用例。具体操作内容:创立以下两个关系模式,并分别插入相应的数据。职工〔职工号,姓名,年龄,职务,工资,部门号〕其中职工号为主码;部门〔部门号,名称,经理名,地址,号码〕,其中部门号为主码;〔1〕使用SQL语言定义这两个关系模式,并完成以下完整性约束条件的定义;〔a〕定义每个模式的主码;〔b〕定义参照完整性;〔c〕定义职工的年龄不能小于18岁,并且不能超过60岁;〔d〕职工的姓名不能为空;〔e〕职工的工资不能为空,且不能小于800;〔f〕部门名称不能为空且不能重复,定义约束名为UK_dName;〔2〕使用SQL语言分别向两个表中插入7行记录,验证上面的各种约束条件;〔3〕将职工的年龄改为不能小于16岁,并且不能大于65岁;〔4〕定义一个表tbl_Emp_Log(eNO,eSalary,Username,ModiDate);在职工表上定义修改和插入数据的触发器,将插入的职工号和工资数据填入到Emp_log表中,并记录操作的用户和插入时间;如果修改了职工的工资,也把职工号和修改后的工资数据填入到Emp_log表中,并记录操作的用户和插入时间。使用SQL语句向职工表中插入数据和修改工资,验证触发器的效果。四实验报告4.1实验环境:Windows7MicrosoftSQLserverManagementStudio20054.2实验内容与完成情况:--新建数据库createdatabaseworkgousework--创立以下两个关系模式,并分别插入相应的数据。--Worker〔职工号,姓名,年龄,职务,工资,部门号〕go--〔〕使用SQL语言定义这两个关系模式,并完成以下完整性约束条件的定义;--〔a〕定义职工号为职工表的主码;createtableWorker(职工号varchar(10)primarykey,--〔d〕职工的姓名不能为空;姓名char(10)notnull,--〔c〕定义职工的年龄不能小于岁,并且不能超过岁;年龄intconstraintw_agecheck(年龄>18and年龄<65),职务char(15),--〔e〕职工的工资不能为空,且不能小于;工资moneynotnullconstraintw_sacheck(工资>800),部门号char(50),--〔b〕定义参照完整性foreignkey(职工号)referencesWorker(职工号))--Section〔部门号,名称,经理名,地址,号码〕createtableSection(--定义部门号为部门表的主码部门号char(10)primarykey,--〔f〕部门名称不能为空且不能重复,定义约束名为UK_dName;名称char(10)notnullconstraintUK_dNameunique,经理名char(10),地址char(50),char(15),--〔b〕定义参照完整性foreignkey(部门号)referencesSection(部门号));go--〔〕使用SQL语言分别向两个表中插入行记录,验证上面的各种约束条件;--验证部门名称不能为空且不能重复,定义约束名为UK_dName;insertintoSectionvalues('a001','市场部门','李永','北工',);insertintoSectionvalues('a002','营销部门','李刚','北工',);insertintoSectionvalues('a003','营销部门','李忠','北工',);insertintoSectionvalues('a003',null,'李吧','北工',);insertintoWorkervalues('a001001','王明',20,'市场营销员',2000,'a001');insertintoWorkervalues('a001002','李村',29,'市场营销员',2000,'a001');--验证职工的工资不能为空,且不能小于;insertintoWorkervalues('a002001','罗杰',19,'销售员',null,'a002');insertintoWorkervalues('a002002','李红',24,'销售员',700,'a002');--验证职工的姓名不能为空;insertintoWorkervalues('a002003',null,32,'经理',5000,'a002');--验证职工的年龄不能小于岁,并且不能超过岁;insertintoWorkervalues('a001003','李永',61,'经理',5000,'a001');insertintoWorkervalues('a002004','黄鹂',17,'副经理',4500,'a002');--查询部门表和职工表的数据--〔〕将职工的年龄改为不能小于岁,并且不能大于岁;altertableWorkerdropconstraintw_age;altertableWorkeraddconstraintw_agecheck(年龄>16and年龄<65)--验证职工年龄不能小于岁,并且不能大于岁insertintoWorkervalues('a002005','李芳',15,'副经理',4500,'a002');insertintoWorkervalues('a002006','李姓',66,'副经理',4500,'a002');--〔〕定义一个表tbl_Emp_Log(eNO,eSalary,Username,ModiDate);在--职工表上定义修改和插入数据的触发器,--定义表createtabletbl_Emp_Log(idintidentityprimarykey,eNochar(20),eSalarymoney,Usernamechar(20),ModiDateDatetime)--定义插入数据的触发器createtriggerinsert_EmponWorkerafterinsertasbegininsertintotbl_Emp_Logselect职工号,工资,User_name(),getDate()fromInserted;enddroptriggerinsert_Emp--验证触发器insertintoWorkervalues('a0010011','周涛',29,'市场营销员',2000,'a001');insertintoWorkervalues('a0010010','霍利',28,'市场营销员',2000,'a001');select*fromtbl_Emp_Log;droptabletbl_Emp_Log;--定义修改工资的触发器createtriggerupdate_EmponWorkerafterupdateasifupdate(工资)begindeclare@eSeleryOldmoney,@eSeletyNewmoneyselect@eSeleryOld=工资fromDeletedselect@eSeletyNew=工资fromInsertedif(@eSeleryOld<>@eSeletyNew)insertintotbl_Emp_Logselect职工号,工资,User_name(),getDate()fromInserted;enddroptriggerupdate_Emp--验证触发器insertintoWorkervalues('a0010021','莉莉',29,'营销员',3500,'a001');insertintoWorkervalues('a0010020','李丽',28,'市场营销员',4500,'a001');updateWorkerset工资=5500where职工号='a0010021',updateWorkerset工资=8500where职工号='a0010020',select*from

温馨提示

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

评论

0/150

提交评论