实验七创建和操作数据库对象_第1页
实验七创建和操作数据库对象_第2页
实验七创建和操作数据库对象_第3页
实验七创建和操作数据库对象_第4页
实验七创建和操作数据库对象_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

实验七创建和操作数据库对象实验七创建和操作数据库对象实验七创建和操作数据库对象实验七创建和操作数据库对象编制仅供参考审核批准生效日期地址:电话:传真:邮编:软件学院实验报告课程:数据库原理与实用技术实验实验7创建和操作数据库对象实验7-1存储过程1、使用不带参数的存储过程(1)创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系createprocmy_procasselect学号,姓名,性别,年龄,所在院系from学生表where所在院系='计算机'and性别='女'(2)执行存储过程(3)修改存储过程,使其能够查询计算机系女生的所有基本信息alterprocmy_procasselect*from学生表where所在院系='计算机'and性别='女'2、带输入参数的存储过程(1)创建一个存储过程my_procsex,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系createprocmy_procsex@sexchar(2)asselect学号,姓名,性别,年龄,所在院系from学生表where性别=@sex(2)执行存储过程execmy_procsex@sex='男' 3、带输入/输出参数的存储过程(1)创建一个存储过程my_procage,使其能够根据学生姓名,查询学生年龄。(考虑当学生不存在时给出提示信息)createprocmy_procage@namechar(10),@ageintOUTPUTasifnotexists(select*from学生表where姓名=@name)return-155select年龄from学生表where姓名=@name(2)执行存储过程declare@once_ageint,@statusintexec@status=my_procage@name='陈忠刚',@age=@once_ageoutputif@status=-155print'对不起,您输入的名字查找失败!'print'theoutputdatais:'+convert(varchar(10),@once_age)declare@once_ageint,@statusintexec@status=my_procage@name='李涛',@age=@once_ageoutputif@status=-155print'对不起,您输入的名字查找失败!'print'theoutputdatais:'+convert(varchar(10),@once_age)4、返回状态值的存储过程(1)创建一个存储过程my_procstatus,使其能够根据学生姓名,查询学生的选课信息。(如果没有输入学生姓名,返回状态码55;如果输入的学生姓名不存在,则返回状态码-155)alterprocmy_procstatus@namechar(10)asif@name=''return55elseifnotexists(select*from学生表where姓名=@name)return-155select学号,课程号from成绩表where学号in(select学号from学生表where姓名=@name)(2)执行存储过程:接收存储过程返回的状态码,如果返回的状态码为55则输出提示信息“没有输入名字!!”;如果返回的状态码为-155,则输出“没找到!!”。declare@statusintexec@status=my_procstatus@name=’’if@status=55print=’没有输入名字!’elseif@status=-155print’没有找到!’declare@statusintexec@status=my_procstatus@name=’陈忠刚’if@status=55print=’没有输入名字!’elseif@status=-155print’没有找到!’(3)删除存储过程5、在存储过程中使用临时表,不指定题目,请理解全局临时表与局部临时表的区别1、局部临时表(#开头)只对当前连接有效,当前连接断开时自动删除。

2、全局临时表(##开头)对其它连接也有效,在当前连接和其他访问过它的连接都断开时自动删除。

3、不管局部临时表还是全局临时表,只要连接有访问权限,都可以用droptable#Tmp(或者droptable##Tmp)来显式删除临时表6、使用存储过程对规则进行绑定与解除绑定操作 (1)修改“学生管理数据库”中的“学生情况表”,添加属性“入学日期”。将规则Enter_University_date_rule与入学日期进行绑定 (2)在该表中插入数据记录学号姓名性别年龄专业家庭地址入学日期1王艳女19计算机昆明市正义路3号2008-8-27 查看执行结果 (3)解除绑定,再次插入该数据,查看执行结果。7、使用存储过程对默认进行绑定与解除绑定操作 (1)将默认对象“Time_default”和“Age_default”与上表中的“入学日期”和“年龄”进行绑定,并插入数据学号姓名性别年龄专业家庭地址入学日期6张浩男通信沈阳市青年路2号 查看执行结果 (2)解除绑定,再次插入该数据,查看执行结果。实验7-2视图的创建与使用1.创建一个名为stud_view1的视图,从“学生管理数据库”的学生表中查询出性别为男的所有学生的学号,姓名,性别,班级,家庭住址,入学时间和出生年月。createviewstud_view1asselect学号,姓名,性别,班级,入学日期from学生where性别='男'2.创建一个名为stud_view2的视图,查询出选修了《高等数学》的所有同学的选课信息,包括学号,姓名,成绩。createviewstud_view2asselect学生表.学号,学生表.姓名,成绩表.成绩from成绩表join学生表on成绩表.学号=学生表.学号where课程号in(select课程号from课程表where课程名='高等数学')3.从视图stud_view1中查询出软件2班肖一竹的资料。4.向视图stud_view2中插入一行数据:学号为9940210,姓名为钱丽,成绩为71,结果是什么5.修改视图stud_view1,将9940201号同学的性别更改为女。然后再次查询学生表和视图stud_view1,看结果有何改变,为什么结果便是变为了显示从“学生管理数据库”的学生表中查询出性别为女的所有学生的学号,姓名,性别,班级入学日期。应为建立视图的时候,from后面只跟了一张表,所以可以对视图进行更新。6.完成教科书457页如下习题:[]a:三条SQL语句都不合法,因为它们的创建视图语句中的from后面都跟了多张表,所以创建的视图不是可更新视图。[]b:createviewagentviewasselect*fromagentswhere[percent]<=10and[percent]>=0withcheckoption[]c:[]d:createviewvproductsasselectpid,pname,city,quantityfromproducts;[]:违反了规则5,不能够含有salary1+salary2这种列,这样的话,如果我们对视图进行更新以后就无法使原始表进行同步的更新,因为知道salary1+salary2的值,无法知道salary1与salary2人别的值。[]:[]a:[]b:

温馨提示

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

评论

0/150

提交评论