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

实验6索引与视图

实验名称

使用设备

索引与视图(2课时) 实验日期

硬件:电脑一台

实验地点

软件:Windows、SQL server 2005

1、掌握sql建立索引的二种方法,即在基本表中建立和用命令方式建立;掌

握删除索引的方法。

实验目的

2、掌握sql视图建立、修改和删除。

1、为student数据库中的Students,Courses,Reports三个表建立索引。其中Students

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

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

Use student

create unique index Stu_Sno

on students(Sno)

create unique index Cou_Cno

on Courses(Cno)

create unique index Rep_SCno

on Reports column Sno,Cno desc

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

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

create clustered index Stud_SS

on students(Sname,So)

3、删除基本表Reports上的Rep_SCno索引。

Drop index _SCno

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

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

Create view C_Student

As

Select Sno,Sname,Sage,Sdept

From students

Where Sdept=’数学’

With check option

5、建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图。

本视图由三个基本表的连接操作导出。

Create view Student_CR

As

,,,

From students as S,Course C,Reports R

where =R,Sno and =

6、定义一个反映学生出生年份的视图。

Create view stu_y

As

Select Sno,出生年份=cast((year(getdata())-Sage) as varchar(4))+’年’

form students

7、删除视图Student_CR。

Drop view Student_CR

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

年龄(Sage)。

Select Sname ,Sno from C_Student where Sage=20

9、在Student_CR视图中查询成绩在85分以上的学生学号(Sno)、姓名(Sname)和课程

名称(Cname)。

Select Sno,Sname,Cname from Student_CR where Grade=85

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

Updata C_Student

Set Sname=’黄海’

Where Sno=’S05’

11、向数学系学生视图C_Student中插入一个新的学生记录,其中学号为“S09”,姓

名为“王海”,年龄为20岁。

Insert into C_Student(Sno,Sname,Sage,Sdept)

Values(‘S09’,’黄海’,20,‘数学’)

12、删除数学系学生视图C_Student中学号为“S09”的记录。

Delete from C_Student

Where Sno=’S09’

实验心得

教师评语

优 良 中 及格 不及格 批改日期