数据库实验视图.doc
文本预览下载声明
实验5 索引和视图
1.实验目的
(1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。
(2)掌握使用SQL Server管理平台查看索引的方法。
(3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的 方法。
(4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。
(5)了解索引和视图更名的系统存储过程sp_rename的用法。
(6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。
(7)了解删除视图的Transact-SQL语句DROP VIEW的用法。
2.实验内容及步骤
说明:在SQL Server2005中,有三种视图:标准视图、索引视图和分区视图。
标准视图:组合了一个或多个表中的数据,用户可以获得使用视图的大多数好处。包括将重点放在特定数据上以简化数据操作。
索引视图:适合聚合多行的查询,不太适合经常更新的基本数据集。
分区视图:支持大型多层网站的处理需要。
SQL Server2005提供了两种创建视图的方法。SSMS和T-SQL语句。
create view语法形式:
create view 【数据库名.】【拥有者.】视图名【(列名1,列名2【…..n】)】
ASselect 语句
【with check option】
其中,各参数说明如下:
数据库名:当前数据库名称
拥有者:当前数据库的拥有者,在绑定架构时不可缺。
视图名:用于指定包含的列名,符合标识符的命名规则。
列名:视图中包含的列名。若使用与源表或视图中相同的列名时,则不必给出列名,如果是计算得到的值则必须指定列名。
select语句:定义视图的select语句。在视图中可以使用的select语句有一些限制。
with check option:强制针对视图执行的所有数据修改语句都必须符合在select语句中设置的条件。
示例1:创建女生的视图(girl_view),包括学号、姓名、性别、出生日期、选修的课程名称、分数等信息。
代码如下:create view girl_view
as
select s.学号,姓名,性别,出生日期,课程名称,g.分数
from student_info as s inner join grade as g
on s.学号=g.学号inner join curriculum as c
on g.课程编号=c.课程编号where 性别=女,课程编号)
(5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。
sp_helpindex grade
(6)使用SQL Server管理平台对grade表创建一个聚集索引和唯一索引。
(7)使用系统存储过程sp_rename将索引grade_index更名为grade_ind。
sp_rename grade.grade_index,grade_ind,INDEX
(8)分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信息。
DROP INDEX grade.grade_ind
(9)在studentsdb数据库中,以student_info表为基础,使用SQL Server管理平台建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。
(10)在studentsdb数据库中,使用Transact-SQL语句CREATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。
(11)基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的所有课程与成绩,如图1-9所示。
图1-9 学号为0001的学生的视图信息
(12)分别使用SQL Server管理平台和Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。
(13)使用Transact-SQL语句ALTER VIEW修改视图v_stu_i,使其具有列名学号、姓名、性别。
ALTER VIEW v_stu_i(学号,姓名,性别)
AS SELECT 学号,姓名,性别 FROM student_info
(1
显示全部