实验7:索引和视图定义

发布时间:2023年12月17日

【实验目的】

1了解索引和视图的含义

2熟悉索引和视图的创建规则

3掌握索引和视图的创建和管理

实验设备及器材

1、硬件:PC机;

2、软件:(1)Windows7; (2)Microsoft SQL Server 2012

【主要内容】

索引的创建、删除、重建;视图的创建、修改和删除。

实验内容及要求/【实验步骤及结果】

请在“学生管理数据库”中完成附加数据库,T-SQL语句)

  1. 为“学生信息表”的“姓名”列创建一个唯一非聚集索引I_SNAME。

所需代码命令为:

USE?学生管理数据库

CREATE?UNIQUE?NONCLUSTERED?INDEX?I_SNAME

ON?学生信息表(姓名)

执行效果图如下:

  1. 为“课程信息表”的“课程名”列建立一个非聚集索引I_CNAME。

所需代码命令如下:

USE?学生管理数据库

CREATE?NONCLUSTERED?INDEX?I_CNAME

ON?课程信息表(课程名)

执行效果图如下:

  1. 为“成绩信息表”创建一个基于“课程号”列和“成绩”列的索引I_CNO_GRADE,其中“课程号”列按升序排列,“成绩”列按降序排列。

所需代码命令如下:

USE?学生管理数据库

CREATE?INDEX?I_CNO_GRADE

ON?成绩信息表?(课程号 ASC,?成绩 DESC);

执行效果图如下:

  1. 强制使用索引I_CNO_GRADE进行查询。

(SELECT * FROM 成绩信息表 FORCE WITH(INDEX(I_CNO_GRADE))

?WHERE 成绩>=60)

所需代码命令如下:

USE?学生管理数据库

SELECT?*?FROM?成绩信息表 FORCE?WITH(INDEX(I_CNO_GRADE))?WHERE?成绩>=60;

执行效果图如下:

  1. 查看“学生信息表”的所有索引的信息。

所需代码命令如下:

USE?学生管理数据库

SELECT?*?

FROM?INFORMATION_SCHEMA.TABLE_CONSTRAINTS?

WHERE?TABLE_NAME =?'学生信息表';

执行效果图如下:

  1. 请创建一个视图V_SNAME,统计“学生信息表”的“姓名”,并查看该统计信息。

所需代码命令如下:

CREATE?VIEW?V_SNAME

AS?SELECT?COUNT(*)?AS?学生总数,?姓名

FROM?学生信息表

GROUP?BY?姓名;

执行效果图如下:

  1. 创建一个简单的视图V_101_NOPASS,查询101号课程不及格的信息,并查看视图。

所需代码命令如下:

CREATE?VIEW?V_101_NOPASS

AS?SELECT?*?

FROM?成绩信息表

WHERE?课程号 =?'101'?AND?成绩 <?60;

sp_helptext'V_101_NOPASS'

执行效果图如下:

  1. 创建一个复杂视图V_SAMECOLLEGE,查询与“俞奇军”住在同一个系的学生信息,并查看视图。

所需代码命令如下:

CREATE?VIEW?V_SAMECOLLEGE

AS?

SELECT?*?

FROM?学生信息表

WHERE?所在系='计算机'

WITH?CHECK?OPTION

sp_helptext'V_SAMECOLLEGE'

执行效果图如下:

  1. 创建一个复杂视图V_S_SC_C,查询选修了课程的同学的姓名、课程名及成绩,并查看视图。

所需代码命令如下:

CREATE?VIEW?V_S_SC_C

AS?

SELECT?学生信息表.姓名,课程信息表.课程名,成绩信息表.成绩

FROM?学生信息表,课程信息表,成绩信息表;

sp_helptext'V_S_SC_C'

执行效果图如下:

  1. 使用在9中创建的视图V_S_SC_C,统计选修了课程的学生的人数和平均分。

所需代码命令如下:

USE?学生管理数据库

SELECT?COUNT(DISTINCT?姓名)?

AS?人数,AVG(成绩)

AS?平均分

FROM??V_S_SC_C执行效果图如下:

文章来源:https://blog.csdn.net/weixin_62399938/article/details/134961025
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。