1、数据库视图和索引 游标实验报告数据库系统实验报告年级、专业、班级2011级计科4班姓名XX实验题目视图和索引 游标实验时间 2013/10/25实验地点A主414实验成绩 实验性质验证性 设计性 综合性教师评价:算法/实验过程正确; 源程序/实验内容提交 程序结构/实验步骤合理;实验结果正确; 语法、语义正确; 报告规范; 其他: 评价教师签名:一、实验目的1.学习并掌握视图的创建、使用、修改和删除。2.学习并掌握索引的创建和使用。3.学习并掌握数据库的连接操作。4.掌握transact-SQL的变量定义方法。5.了解并掌握游标的定义。6.了解并掌握声明、打开、提取、关闭和释放游标。7.了解并
2、掌握使用游标修改数据。二、实验项目内容实验三:1.(改编自.)建立视图,它给出了名叫Einstein的教师所教的所有学生的信息,保证结果中没有重复。2.用SQL查询语句写出下面的查询。a.显示所有教师的列表,列出他们的ID,姓名以及所讲授的课程段的编号。对于没有讲授任何课程段的教师,确保将课程段的编号显示为0。在你的查询中应该使用外连接,不能使用标量子查询。b.使用标量子查询,不能使用外连接写出上述查询。c显示2010年春季开设的所有课程的列表,包括讲授教程段的教师的姓名。如果一个课程段有不止一位教师讲授,那么有多少位教师,此课程段在结果中就出现多少次。如果一个课程段没有任何教授,他也要出现在
3、结果中,相应的教师名设置为“”。d显示所有系的列表,包括每个系中教师的总数,不能使用标量子查询。确保正确处理没有教师的系。 不使用SQL外连接运算也可以在SQL中计算外连接表达式。为了阐明这个事实,不使用外连接表达式重写下面的SQL查询。aselect *from student natural left outer join takes * from student natural full outer join takes 实验四:1. 用游标的方式完成,使用大学模式,给. 系的每位老师涨10%的工资。2. (改编自.)用游标的方式完成, 使用大学模式,找出名叫Einstein的教师所教的
4、所有学生的表示,保证结果中没有重复,并将他们赋值给变量student1、student 2、student n三、实验过程或算法(源程序)实验三:1.Create view Einstein_studentAsSelect distinct , ,From student,instructor,advisorWhere = Einstein and =22222 and = 2.a.select *from instructor left outer join teacheson = b.select ID,name, (select count(course_id) as bianhao f
5、rom teaches where =from instructorc.select ,from teaches,instructorwhere = Spring and =2010 and =d.select *from department left outer join instructoron = 3.a.select *from student natural join takesunionselect ID,name,dept_name,tot_cred,NULL,NULL,NULL,NULL,NULL,NULLfrom student where not exists (sele
6、ct ID from takes where = b.(select * from student natural join takes)union(select ID,name,dept_name,tot_cred,NULL,NULL,NULL,NULL,NULL,NULL from student where not exists (select ID from takes where = )union(select ID,name,dept_name,tot_cred,NULL,NULL,NULL,NULL,NULL,NULL from takes where not exists (s
7、elect ID from student where = )实验四:1.begin trandeclare upsa cursor forselect *from instructorwhere dept_name = Comp. Sci.open upsafetch next from upsaupdate instructorset salary = salary * where current of upsawhile FETCH_STATUS =0beginfetch next from upsaupdate instructorset salary = salary * where
8、 current of upsaendcommit tranclose upsadeallocate upsa2.declare student cursor For select distinct , from instructor,student,advisorwhere =Einstein and = and =for read onlydeclare id char(20),name char(20),dept_name char(20) ,tot_cred char(20)open studentfetch next From student into id ,name,dept_name ,tot_credWHILE FETCH_STATUS = 0BEGINPRINT id +name+dept_name+tot_credfetch next From student into id ,name,dept_name ,tot_credENDclose studentDEALLOCATE student四、实验结果及分析和(或)源程序调试过程实验三:1.执行结果如下: 命令成功完成。命令成功完成。命令成功完成。命令成功完成。实验四:1.命令成功完成。2.命令成功完成。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1