Hello,这是数据库实验报告系列的最后一份了,我将要结束这个系列了。再次感谢能点开这个报告合集系列的你~
一、 实验目的及实验环境
(1) 理解索引和视图的概念
(2) 掌握索引的使用方法
(3) 掌握视图的定义和使用方法
二、 实验内容及结果
理解索引的概念
当表的数据量比较大时,查询操作会比较耗时。这时候建立索引是加快查询速度的有效手段,它能快速定位到需要查询的内容。用户可以根据需要在基本表上建立一个或多个索引,用来提供多种存取路径,加快查找速度。
建立索引
核心语句:CREATE (UNIQUE) INDEX <索引名> ON 表名(列名 ASC/DESC,列名 ASC/DESC)
注意:ASC为升序,DESC为降序。默认为ASC升序。
实验要求 对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。代码如下。
更保险的代码如下。
此代码比上述代码更加完善保险,第一行加入了IF EXISTS语句,如果已经存在名为’SC_ind’的索引,则执行第二行删除索引的操作。在第三行继续在执行建立索引操作。视图的定义和操作。
修改索引
核心语句:ALTER INDEX <old索引名> RENAME TO <new索引名>。代码如下,
删除索引
核心代码:DROP INDEX <索引名>。代码如下。
理解视图的概念
视图是关系数据库系统为用户提供从不同角度观察和使用数据库中数据的一种机制。视图是一个虚表,在数据库中只存放视图的定义,而不存放对应数据。这些数据仍然存在在原来的表中,其变化可以通过视图而反应出来,我们可以对视图进行查询操作。
建立视图
核心语句为:CREATE VIEW <视图名> (<列名>,<…>)
AS
<SELECT子查询>
[WITH CHECK OPTION]
例3.54 建立计算机系学生的视图,并要求进行修改和插入时需保证视图只能对计算机系学生进行操作。代码如下。
[WITH CHECK OPTION]作用:因为题目要求只能对计算机系学生进行操作,加入了WITH CHECK OPTION之后系统会自动检查或加上Sdept = ‘CS’的条件。
例3.55 建立选择了2号课程且成绩在80分以上的学生视图。
例3.56 (带表达式的视图)建立一个反映学生出生年份的视图。
删除视图
核心语句:DROP VIEW <视图名>;
查询视图
例3.57 在计算机系的视图c_student上查询年龄在18~20岁之间的学生的学号和姓名。代码如下。
【执行结果如下】
例3.58 在例3.55的学生视图上查询90分以上的女学生的学号和姓名。
【执行结果如下】
更新视图
例3.59 在例3.54视图上进行操作,将学号为980021的学生姓名改为’TOY’。代码如下。
例3.60 在例3.54视图上进行操作,插入一个学生信息
例3.61 在例3.54视图上进行操作,删除学号为980013学生信息
三、 非正常运行结果及原因
无
四、 对设计及调试过程的心得体会
其实这次相较于之前的实验来说,任务量减少了,并且对于视图的操作都是建立在之前熟悉SQL语句的基础之上。使用的方法更加能够体现TSQL语句的结构特性,实际上每一步都是非常有逻辑可循的。在结合了离散数学中数理逻辑的知识后,熟练运用逻辑等级,让查询变得更加自然有规律。