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

    数据库实验报告5-6次.doc

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

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

    数据库实验报告5-6次.doc

    数据库原理实验报告实验名称学号姓名班级日期五 触发器、存储过程和函数2013302536张林江100113032015-10-31实验五:触发器、存储过程和函数1、 实验目的1. 掌握系统存储过程的使用用法。2. 掌握用户自定义的存储过程的创建和执行方法。3. 掌握触发器的创建和执行方法。4. 掌握用户自定义函数的创建和执行方法。2、 实验内容1、使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分)sp_rename 'V_SPJ' , 'VSPJ_三建'2、针对SPJ数据库,创建并执行如下的存储过程:(共计35分)(1) 创建一个带参数的存储过程jsearch。该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10分)CREATE Procedure jsearch(SPJ_JNO char(10)AS BEGIN SELECT SNAME,PNAME,JNAME FROM SPJ,S,P,J WHERE SPJ_JNO = SPJ.JNO AND SPJ.JNO = J.JNO ANDSPJ.PNO = P.PNO ANDSPJ.SNO = S.SNOEND; 输入下边命令,可得到结果jsearch 'J1' (2)使用S表,为其创建一个加密的存储过程jmsearch。该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。(10分) CREATE PROC jmsearchWITH ENCRYPTIONASSELECT S.SNAME,S.SNO,S.STATUSFROM SWHERE S.CITY = '北京' (3) 使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。(5分)EXEC sp_helptext jsearch EXEC sp_helptext jmsearch 因为刚才已经加密,所以无法看见 (4) 执行jmsearch存储过程,查看北京供应商的情况。(5分) EXEC jmsearch(5) 删除jmsearch存储过程。(5分)DROP PROCEDURE dbo.jmsearch3、 针对Student数据库,创建和执行如下的触发器:(共计40分)(1) 删除SC表上的外键约束,针对SC表创建一个名为insert_s的INSERT触发器。该触发器的功能:当用户向SC表中插入记录时,如果插入的cno值不是C表中Cno的已有值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。触发器创建成功之后,向SC表插入记录,验证触发器是否正常工作。(5分) create trigger insert_s on SCfor insert asdeclare cnoo intselect cnoo from insertedif(not exists(select * from C where C.cno = cnoo)beginprint'不能插入记录这样的纪录'endelse print'记录插入成功'insert into SC values('95002','7','100')(2) 为S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁止删除S表中的记录。触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作。(5分) CREATE trigger dele_s1 ON Sinstead of deleteas print'不能删除S表中记录'delete from Swhere S.sno = '95002'(3) 为S表创建一个名为dele_s2的DELETE触发器,该触发器的作用是删除S表中的记录时删除SC表中该学生的选课纪录。触发器创建成功之后,删除S表中的记录删除S表中的记录,验证触发器是否正常工作(SC表中的数据被正常删除)。(5分) create trigger dele_s2on S for delete as delete from SC where SC.sno in(select sno from deleted) delete from s where s.sno='95001'当再次查询SC表时可见95001 已经别删除了(4) 为S表创建一个名为update_s的UPDATE触发器,该触发器的作用是禁止更新S表中“sdept”字段的内容。触发器创建成功之后,更新S表中“sdept”字段的内容,验证触发器是否正常工作。(5分)create trigger update_s on S for updateas if update(sdept)beginprint '禁止更新sdept字段'rollback tranendupdate S set sdept = 'MA'where sno = '95002'(5) 禁用update_s触发器。禁用之后,更新S表中的“sdept”字段的内容,验证触发器是否还继续正常工作。(5分)alter table Sdisable trigger update_supdate S set sdept = 'MA'where sno = '95002'(6) 删除update_s触发器。(5分) drop trigger update_s(7) 创建一个新的课程成绩统计表 CAvgGrade(Cno, Snum, examSNum, avgGrade),分别表示课号,选该课程的学生人数,参加考试人数,该门课程的平均成绩。利用触发器实现如下的功能:当SC表中有记录插入、删除或者更新时,自动更新表CAvgGrade。注意SC表中的grade为NULL时表明该学生还未参加考试,计算平均成绩时不需要计算该成绩,但是grade为0即考试成绩为0时,需要计算该成绩。(10分)create table CAvgGrade( Cno char(10), Snum char(10), examSNum char(10),avgGrade char(4);初始化Cavggrade表: A 创建触发器实现功能: 1. 创建一个works数据库,其中包含员工表empoyee(eID, eName, salary),假设该表中有1000条员工数据,完成下列要求(总计20分,每题10分)。(1) 为了协助本题自动生成1000条员工数据,创建一个自动生成员工ID的用户自定义函数generateEID。其中员工ID要求是一个8位的数字,前四位表示插入员工数据的当前年份,后四位按照从0001到9999的顺序增长。例如2015年插入的第一条数据是20050001,所有1000条员工ID分别是20150001-20151000。调用该函数实现自动插入1000条数据。(注意插入数据的时候员工姓名可以为任意值,工资是2000-5000之间的数字)2 create FUNCTION generateEID3 (4 emp_num int,5 year int6 )7 RETURNS emp Table (eID int primary key,eName char(20),salary int)8 AS9 BEGIN10 declare i int11 declare final_id int12 declare salary int13 declare name char(20)14 set i=1;15 set year=year*10000;16 while i <=emp_num17 begin18 set final_id =year+i19 set name = 'empoyee'+cast(i as varchar)20 set salary = 2000+i%6 *50021 insert into emp values(final_id,name,salary)22 set i=i+123 end24 return25 END使用该自定义函数的返回值创建一个empoyee的表;CREATE TABLE empoyee(eID int primary key,eName char(20),salary int)insert into empoyee  select * from dbo.generateEID(1000,2015)函数运行之后,empoyee表的数据变成了: (1) 该公司计划为员工按照一定的规则涨工资,请使用游标创建一个存储过程,执行该存储过程完成本次工资调整:工资增长规则如下:l 工资在3000元以下,每月涨300元;l 工资在3000-4000元之间,每月涨200元;l 工资大于或者等于4000元,每月涨50元;create procedure upsalaryasdeclare eid nchar(10)declare salary intdeclare mycursor cursor for select eid from employeeopen mycursorfetch next from mycursor into eidwhile(FETCH_STATUS=0)beginselect salary=salary from employee where eid=eidif(salary<3000)beginupdate employeeset salary=salary+300where eid=eidendif(salary>=3000 and salary<4000)beginupdate employeeset salary=salary+200where eid=eidendif(salary>=4000)beginupdate employeeset salary=salary+50where eid=eidendfetch next from mycursor into eidendclose mycursor二、实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。3.自己的感受 数据库实验还是比较难做的实验,信息量和任务量都很大,在做这次实验之前,我开始看了一下实验的题目,对应着题目,我看了一遍课本,发现仅从课本上的知识是不能全部的做完这次实验,然后我通过查阅参考书,去做预习报告,我发现这次的题目相比于前几次是比较有挑战性的。比如说对于游标的使用、创建游标、执行带游标的存储过程等等,我在真正敲代码时,都遇到了相应的困难,带式通过咨询老师,查阅资料最终都得到了相应的解决。   批阅者: 批阅日期:实验成绩: 批注: 数据库原理实验报告实验名称学号姓名班级日期六ODBC/JDBC数据库编程2013302536张林江100113032015-10-31实验六:ODBC/JDBC数据库编程1、实验目的1. 熟练掌握ODBC数据源的配置方法。2. 掌握ODBC编程技术。3. 掌握JDBC编程技术。(选做实验)2、实验内容1. ODBC配置以及程序调试:(50分)(1) 配置一个ODBC数据源,要求数据源名称:student,其中包含s(学生信息)表。1.点击开始菜单. -> 2打开<控制面板>. -à3在<调整计算机的设置>中,点击<系统和安全>. -à4. 点击<管理工具>. -à 5点击<数据源(ODBC)>.(2) 阅读并运行实验给出的例子程序,理解ODBC编程,要求简单写出自己对这段程序的理解或者流程图,并且请给出程序运行结果示例图。 程序基本思想:利用ODBC连接数据库Student进行查询。点击运行按钮,调CODBC_TESTDlg:OnButtonExcute()函数。 二、实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。3.自己的感受 了解了ODBC的编程奥妙,触发器定义对相应数据库带来的便利等等。通过这次实验,我了解到的学习数据库给我带来的乐趣和编程实现的小小成就感,我感觉自己了解的知识还是很少,应该虚心向老师请教,向同学们学习,多多交流,多看书,更多的锻炼编程,争取有更多的进步。 这次实验整体感觉要难一些,主要是很多东西在书上找不到答案,后来通过与同学讨论在网上查询资料得以解决。    批阅者: 批阅日期:实验成绩: 批注:

    注意事项

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

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




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

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

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

    收起
    展开