西安邮电大学(计算机学院)数据库课内实验报告实验名称:索引和视图存储过程专业名称:网络工程班级:1301班学生姓名:王柏威学号(8位):04132026指导教师:尚小林实验日期:2015年11月16日一、实验目的1.理解索引和视图的概念。2.掌握索引的使用方法。3.掌握视图的定义和使用方法。4.理解存储过程的概念,掌握存储过程的使用方法。二、实验内容1.建立索引。对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序,Grade降序建立一个名为SC_ind的索引。2.在JWGL数据库中,完成第三章例3.54~3.61例题中视图的定义和视图上的查询和更新3.在Market数据库中,完成第3章习题11中(1)的建立视图的操作,然后在该视图上完成第3章习题11中(2)的查询。4.在数据库JWGL中,完成第四章例3~7例题的创建存储过程的操作,并使用EXEC语句调用这些存储过程,观察他们的执行结果。5.在Market数据库中,完成第四章习题5中(1)~(4)创建存储过程的操作。并使用EXEC语句调用这些存储过程执行,观察他们的执行结果。6.创建一个存储过程Goods_Orders1,查看任何指定货品的订单情况,包括订单号,订单客户的姓名以及订货数量等(要求输入参数)。7.执行存储过程Goods_Orders1时,如果没有给出参数,则系统会报错,如果希望不给出参数时能查出所有货品的订单,则可以用默认参数值来实现。为此要创建另一个存储过程。Goods_Orders2来完成此功能。8.创建一个存储过程Goods_OrdersSum,来获得某个货品的订单总额(要使用输入及输出参数)三、实验截图1.索引和视图创建索引创建视图c_student,选取计算机系学生的信息创建视图student_course2,选取课程2成绩为优秀的学生创建视图student_bireth,选取学生的学号,姓名,年龄直接从c_student中进行SELECT语句查询,与在普通的表中进行查询并没有区别2.存储过程建立并执行student_course存储过程,用来查询李大勇同学的选课情况Student_counrse1存储过程作用于上面相同,区别在于查询时使用的姓名由输入参数给出,并非事先写在存储过程中。包含输入参数的存储过程,如果输入参数为空则查询所有学生的情况。这个存储过程包括了一个输入参数和一个输出参数,会输出一个返回值,因而在调用该存储过程时应当给出一个参数值,并使用一个合适的变量接收返回值。四.实验感想索引的使用大大提高了我们的查询速度,视图的使用则可以在不建立额外的新表的情况下,保存一些我们比较感兴趣的数据,以供我们日后进行查询,视图同样可以像普通的表一样进行查询,插入等操作,但是需要注意如果建立视图时考虑不当,可能会导致无法向表中插入数据(比如创建的该视图未包含主键所在的列,或未包含一些不允许为空的列),遇到这种情况,只能直接向原表中插入数据了。存储过程有点像别的语言中说的函数,是一段可以拥有参数和返回值的,实现特定功能的代码集合,通过书写和执行存储过程,可以将一些我们平常使用频繁,却又较为繁琐的命令变成一句简单的调用存储过程命令,对于提高工作和学习效率十分有效。