欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据库实验报告3.docx

    • 资源ID:64550114       资源大小:47.92KB        全文页数:7页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库实验报告3.docx

    JNU本科试验报告专用纸课程名称数据库上机试验 成果评定_试脸项目名称SQLServer平安性脸证指导老师试验项目编号()8060113 试验项目类型 验证性 试验地点C305 同学姓名 学号学院电气信息学院系 专业计算机科学与技术试验时间2022年11月30日下午 月 日午 温度_湿度(-)试验目的熟识通过SQL对数据进行完整性掌握,完成作业的上机练习。(-)试验内容和要求使用SQL对数据进行完整性掌握(3类完整性、CHECK短语、 CONSTRAIN子句、触发器)。用试验证明,当操作违反了完整性约束条件 时,系统是如何处理的。依据以下要求仔细填写试验报告,纪录全部的试验 用例。(三) 主要仪器设施仪器:计算机试验环境:Windows? +SQL Server2022(四) 试验内容与完成状况1 .设计试验内容:依据试验二的平安性内容所建立的数据库company中的职工表a、部门表b, 创建以下两个关系模式,并分别插入相应的数据。职工表w (职工号,姓名,年龄,职务,工资,部门号)其中职工号为主码; 部门表b2(部门号,名称,经理名,地址,电话号码),其中部门号为主码;(1)使用SQL语言定义这两个关系模式,并完成以下完整性约束条件的定 义;(a)定义每个模式的主码;(b)定义参照完整性;(c)职工的姓名不能为空;(d)定义职工的年龄最小为18岁,50岁后退休(即不能超过50岁);(e)职工的工资不能为空,且不能小于1100 (2022年珠海最低工作限);(f)部门名称不能为空且不能重复,定义约束名为UK_dName;(2)使用SQL语言分别向两个表中插入7行纪录,验证上面的各种约束条 件;(3)将职工的年龄改为不能小于16岁,并且不能大于65岁;(4)定义一个表 tbI_Emp_Log(eNO, eSalary, Username, ModiDate);在职表上 定义修改和插入数据的触奖器,将插入的职工号和工资数据填入到Empjog表 中,并纪录操作的用户和插入时间;假如修改了职工的工资,也把职工号和修改 后的工资数据填入到Empog表中,并纪录操作的用户和插入时间。使用SQL 语句向职工表中插入数据和修改工资,验证触发流的效果2 .试验步骤:1).在上次试验的数据库company中创建职工表w和部门表b2。SQLQueryLsql-ML.ing-PCMing (53)*|E create table w(职工号 varchar (10) primary key,姓名 char (10) not null,年龄intconstraint w_age check (年龄18 and 年龄50),职务 char (15) r工资 money not nullconstraint w_sa check(工资T100),部门号 char (50), foreign key (职工号)references w (职工号)L)nr曲消息命令已成功完成。create table w(职工号varchar (10) primary key, 一 (a)定义职工号为职工表的主码;姓名char(10) not null, (c)职工的姓名不能为空:年龄intconstraint w_age check (年龄18 and年龄50) , - (d)定义职工的年龄不能小于 18岁,并且不能超过50岁:职务 char (15),工资money not null- (e)职工的工资不能为空,且不能小于1100;constraint w_sa check (工资1100),部门号char (50), (b)定义参照完整性foreign key (职工号)references w (职工号)行(X)» 二,胆r 眼。至襄隼率益兄 xSQLQueryLsq|-ML.ing-PCMing (53)* create table b2(部门号 char (10) primary key, 名称 char (10) not nullconstraint UK_dName unique,经理名char (10),地址 char (50), 电话 char (15 Hforeign key (部门号)references b2 (部门号)nr=J消息命令已成功完成。create table b2(部门号char(10) primary key, -定义部门号为部门表的主码;(f)部门名称不能为空且不能重复,定义约束名为UK_dName; 名称 char(10)not nullconstraint UK_dName unique, 经理名char (10), 地址 char (50),电话char (15), (b)定义参照完整性foreign key (部门号)references b2(部门号) )2)使用SQL语言分别向两个表中插入行纪录,验证各种约束条件;SQLQueryl.sql - MI.ing-PCMing (53)*a)验证部门名称不能为空且不能重复,定义约束名为UK_dName;日 insert inserc insert insert日 insert inserc insert insertinto b2 values ( a001,J 市场部门,,,周杰伦,3 北工不 ;);into 焜 values(,a002,誉错部门戴一北工,); into b2 values ('a003'营箱部门,李一','北工,);into b2 values ('a003',null, ,:FT insert into w values ('aOOlOOl'周密',20,'市场营销员',2000,'a001'); insert into w values (,a001002-古龙,29,,帝扬营销员 12000,,aOOl»in<1行受影响)<1行受影响<1行受影响消息2627,级别14状态1,第3行连反了 UNIQUE KEY约亲'UK_dName'o不能在对象'dbo.b2'中插入重复键。语句已终止。消息515,级别16,状态2,第4行丕能将值NUIX插入列"名称,,表,conpany.dbo.b2 语句已终止。歹坏允许有Null值。INSERT失败。<1行受影响.<1行受影响)如图可见,被提示违反约束,终止语句。b)验证职工的工资不能为空,且不能小于1100;-< | M|IMSQLQueryLsql - ML.ing-PCMing (53)*0 insert into w values (,a002001,J 刘岩可191销售员 ',mill J a002,);L insert into w values ('a002002柳岩,24,年肖售员,700, ' a002');*m消息消息515,级别16,状态2,第1行不能将值NULL插入列,工资:表,conipany.dbo.w'5列不允许有Null值。INSERT失败。语句已终止。消息级别16,状态0,第2行INSERT语句与CHECK约束“wa”冲突。该冲突发生干数据库"coir5)any'>, 表"dbo.w", column '工资'o 语句已终止。C)验证职工的姓名不能为空;:中回;1 F |陶醺QJ |三 三|年年|为产SQLQueryLsqH ML.ing-PCMing (53)*|insert into 以 values (-002003null, 323经理,,5000, ' a002,);曲消息消息515,纵别16,状杰2,第1行不能将值NULL插入列,姓名,表,company.dbo.w'列不允许有Null值。INSERT失败。 语句泌止。d)验证职工的年龄不能小于岁,并且不能超过岁;SQLQueryLsql - ML-ing-PCMing (53)- 1(3 insert into yt values ( a001003 ,,'周杰伦',6>,'经理',500。,' aOOl '):L insert into 更 values (' a002004 3 '又文丰',T7,'国ij经于里',4500, ' a002 ');消息消息S47,级别 INSERT语句与< 语句已终止。消息647,级别 INSERT语句与< 语句已终止。.消息消息S47,级别 INSERT语句与< 语句已终止。消息647,级别 INSERT语句与< 语句已终止。.。,第-w_age。,第2行-w_age ”冲突。该冲突发生于刿据库° companyM , 表“dbo.L, column 年龄。该冲突发生于额据库"company",表-dbo.w", colximn,年龄.插入数据后,对部门表b2和职工表w的数据进行查询检查/ MING-PGcompany - dbo.b2 SQLQueryl.sql - MI.ing-PCMing (53)*部门号名称经理名地址电话a001市场部门周杰伦北工a002营优部门戴北工米AUZNULLNLILNULLNULL(上图为部门表b2)MING-PGcompany - dbo.w MiNG-PC.company - dbo.b2 SQLQueryl.sql - Mi.ing-PCMing (53),职工号姓名年龄职务工奥部门号aOOlOOl周密20市场营消员2000.0000a001a001002古龙29市场营消员2000.0000a001*NULLNULLNULLNULLNULLNULL(上图为职员表W).将职工的年龄改为不能小于16岁,并且不能大于65岁;MING-PC.company - dbo.w MiNG-PC.company - dbo.b2 SQLQueryLsql - MLJng-PCM alter table w- k drop constraint w_age;n alter table w add constraint w_age check (年龄16 and 年龄65) |消息命令已成功完成。验证:MING-PC.company - dbo.w MiNG-PC.company - dbo.b2 SQLQueryLsql - MUing-PCMing (53)* insert into w values ( a002005'/15,'副经理,4500, ' a002 ');L insert into w values ('a002006沈桂仪,66,'副经理,4500, ' a002');消息消息、“2级别16,状态。,第1行INSERT语句与CHECK约束_age”冲突。该冲突发生于数据库"uowp.ny",表-dbo.w”,column,年龄一 语句已终止。消息S7,级别16,状态。,第2行INSERT语句与CHECK冲突。该冲突发生于数据库Company”,表dbo.L, column,年龄,。语句已终止。由上图可以看出,己胜利修改约束。5)定义一个表tbl_Emp_Log(eNO, eSalary, Username, ModiDate);在-职工表上定义修胫和房入数据的触发器。定义表:MiNG-PC.company - dbo.w MiNG-PC.company - dbo.b2 SQLQueryLsql create table tbl_Emp_Log( id int identity primary key, eNo char(20), eSalary money, Username char(20)z ModiDate Datetime< |HI瞪消息命令已成功完定义插入数据和修改工资的触发器:SQLQuerylO.sql - ing-PCMing (52)*曰 create trigger msert_Emp on w after insertas begin insert into tbl_Emp_Logselect 职工号,工资,User_name (), getDate () from Inserted;-end石消息命令已成功完成。(上图为定义插入数据的触发器,下图为定义修改工资的触发器)SQLQuerylO.sql -ng-PCMing (52)* create trigger updace_Emp on w after update as if update (工资) begin declare eSeleryOld money,QeSeletyNew money select eSelervOld="l"资 from Deleted select eSeletyNew=工资 from Inserted if(eSeleryOld<>eSeletyNew)insert into tbl_En_Log select 职工号,工资,User name (), getDate () from Inserted; -end< . 苗消息I命令已成功完成。这时,我们可以在图形界面刷新后看到触发器:0 (J company± 数据库关系图日立表田口萦统表l±j 口 dbo.a田 dbo.bE 口 dbo.b2® dbo.tbl_Emp_LogE 口 dbo.w3 列3 约束日LJ帔发器国 insert_Empa update_Emp3 0素引国Qj统计信息en然后,验证触发器:SQLQuery4.sql - Mng-PCMing (52)- insert into WQ,gM? valuesaioiOOll 一囿涛,,29 J市场营销员 12000,,aOOl;); insert into Worker values ('aOOTOOlO'霍利',28,'市场营销员',2000,'aOOT');select . from f.U映;-drop table .;结果W消息ide NoeSalaiyUsernameModi Date11 ja00100112000.00dbo2011-12-16 02:11:01.5802, 厂a00100102000.00dbo2011-12-16 02:11:01.580通过tbl_Emp_Log表可以看出触发器被胜利设置h | 三 63 Stil |W3| SLJ =-=8MlNG-PC.company - dbo.w SQLQuerylO.sql - .ing-PCMing (52)*Binsert into w va工ues('a0010021',莉莉斯',29,'营销员,350。,'aOOl.');insert into w values,a0010020',扫制或 I 28 J 市场营销员 L 4500, ' aOOT');update w set Jj=5500 where'a00100211update w sec Tj&-8500 where 题丁号'a001002(T«M百消息< 1行受影响)< 1行受影响)< 1行受影响)(1行受影响)< 1行受影响)< 1行受影响)< 1行受影响)< 1行受影响)上图为修改职员的工资,打开职员表查看,可以发觉工资被胜利修改,见下图:30010020玛利亚28市场营徜员8500.0000a00160010021莉莉斯29营俏员5500.0000a001NULLNULLNULLNULLNULLNULL至此,试验已胜利完成使用SQL对数据进行完整性掌握并加以验证。试验 证明,当操作违反了完整性约束条件时,系统会作出提示违反约束语句,并终止 相应的语句。(五)消失的问题与解决方法本次试验采纳SQL Server2022进行试验,语句编写和课本的有 出入。设置触发器时,提示语法错误无法执行。后来在图形界面选择“新建触发器”,依据它的语法提示作出修改,分别定义了插入以及JNU本科试验报告专用纸(附页)修改的触发器。(六)试验结果与结论心得本次试验结果如以上截图所示。系统会拒绝执行违约操作并提示 相应违约语句。触发器的功能特别强,可以用于数据库完整性检查。在本次试验中,我通过对试验表的完整性约束条件的定义学会 SQL对数据进行完整性掌握,验证了系统对于违约的处理,从而渐渐 了解了定义完整性约束条件的机制。

    注意事项

    本文(数据库实验报告3.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开