实验7:索引和视图定义

【实验目的】

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执行效果图如下:

相关推荐
csdn_aspnet几秒前
Redis 入门:Windows、Mac安装指南
数据库·windows·redis·缓存·mac
山甫aa1 小时前
锁一篇搞定:乐观锁、悲观锁、CAS、数据库锁与分布式锁【从零开始的 Web 后端学习】
java·数据库·分布式·后端·学习·web
Nturmoils12 小时前
集中式与分布式怎么选:从订单读写看 KingbaseES 的架构边界
数据库
xiaomuzuirenzhen12 小时前
大专电子商务从事电商运营分析师需要考证吗?
大数据·数据库
翔云12345614 小时前
RocksDB中,客户端每写入一次数据,需要访问几次磁盘
运维·数据库·mysql
DevOpenClub15 小时前
职教高考控制线 API:招生类别枚举、筛选与空分数含义
java·数据库·高考
GeW16 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
在多学一点18 小时前
MYSQL第二次作业
android·数据库·mysql
Risehuxyc18 小时前
Microsoft.Data.Sqlite体验
数据库·sqlite
骑着蜗牛撵大象32718 小时前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划