2024年6月6日发(作者:)

实验三 视图、索引及数据更新

一、 实验目的:

熟练掌握索引的建立与删除的方法,熟练掌握SQL的应用,熟练掌握

数据插入、修改和删除的使用,为后继学习作准备。

二、 实验属性

验证性

三、 实验要求

1. 预习教材第三章,熟悉SQL语句。

2. 熟悉SQL Server环境。

3掌握建立索引的两种方法,即在基本表中建立和用命令方式建立。

4.掌握删除索引的方法。

5.掌握sql视图建立、修改和删除;

6.掌握sql视图查询。

7.掌握sql数据插入、修改和删除语句的一般格式及使用方法。

四、 实验原理

SQL语言应用。

五、 实验步骤

(1) 启动SQL查询分析器;

(2) 选择SQL SERVER后,按确认;

(3) 选择数据库;

(4) 验证如下例子:

1 建立索引

例3.1 为学生选课数据库中的Students,Courses,Reports三个表建立索引。其

中Students表按Sno(学号)升序建唯一索引,Courses表按Cno(课程号)升序建唯一索

引,Reports表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。

例3.2 在基本表Students的Sname(姓名)和Sno(学号)列上建立一个聚簇索引,

而且Students中的物理记录将按照Sname值和Sno值的升序存放。

1

2 删除索引

例3.3 删除基本表Reports上的索引。

3 建立视图

例3.4 建立数学系学生的视图,并要求进行修改和插入操作时仍需保证该视图

只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。

例3.5 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩

(Grade)的视图。

例3.6 定义一个反映学生出生年份的视图。

4 删除视图

例3.7 删除例3.6建立的视图。

5 查询视图

例3.8 在数学系的学生视图中找出年龄(Sage)小于20岁的学生姓名(Sname)和年

龄(Sage)。

例3.9 在例3.5建立的视图中查询成绩在85分以上的学生学号(Sno)、姓名

(Sname)和课程名称(Cname)。

6 更新视图

例3.10 将数学系学生视图中学号为“S05”的学生姓名改为“黄海”。

例3.11 数学系学生视图中插入一个新的学生记录,其中学号为“S09”,姓名为

2

“王海”,年龄为20岁。

例3.12 删除数学系学生视图中学号为“S09”的记录。

7 插入数据

例3.13 设数据库中已有一个关系History_Student,其关系模式与Students完全

一样,试将关系Students中的所有元组插入到关系History_Student中去。

8 修改数据

例3.14 将学号为“S03”的学生年龄改为22岁,即要修改满足条件的一个元

组的属性值。

例3.15 将所有学生的年龄增加1岁。即要修改多个元组的值。

例3.16 将数学系所有学生的成绩置零。

9 删除数据

例3.17 删除学号为“S04”的学生选修的课号为“C02”的记录。

例3.18 删除所有学生的选课记录。

例3.19 删除数学系所有学生的选课记录。

3