四 视图

1、实验目的

理解SQL成熟设计基本规范,能够熟练使用SQL语句来创建需要的视图,定义数据库外模式,并能使用所创建的视图实现数据管理。

2、实验内容及要求

使用SQL对数据库进行各类查询数据操纵操作,掌握单行数据插入、多行数据插入,理解空值的意义及处理方式;掌握数据的修改,包括单行和多行数据修改,单列修改和多列数据修改;

针对给定的数据库模式以及相应的应用需求,创建视图和带WITH CHECK OPTION的视图,并验证视图WICH CHECK OPTION选项的有效性。

3、实验步骤

create table Student (

Sno char(7) primary key,

Sname char(10) not null,

Ssex char(2),

Sage tinyint,

Sdept char(20)

)

create table Course(

Cno char(6) not null,

Cname char(20) not null,

Credit tinyint,

Semester tinyint,

primary key(Cno)

)

create table SC(

Sno char(7) not null,

Cno char(6) not null,

Grade smallint,

primary key(Sno,Cno),

foreign key(Sno) references Student(Sno),

foreign key(Cno) references Course(Cno)

)

四 视图_第1张图片 

四 视图_第2张图片

四 视图_第3张图片

(1)利用Student、Course和SC表,写出创建满足下列要求的视图的SQL语句。

1)建立学生的学号、姓名、所在系、课程号、课程名、课程学分的视图。

CREATE VIEW v1 AS SELECT Student.Sno,Sname,Sdept,SC.Cno,Course.Cname,Course.Credit

FROM Student,SC,Course

WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno

四 视图_第4张图片

2)建立学生的学号、姓名、选修课程名和考试成绩的视图。

CREATE VIEW v2 AS SELECT Student.Sno,Sname,Cname,SC.Grade

from Student,SC,Course

where Student.Sno=SC.Sno and sc.Cno=Course.Cno;

四 视图_第5张图片

3)建立统计每个学生的选课门数的视图,要求列出学生学号和选课门数。

create view v3 as select Sno '学号', COUNT(Cno) '选课门数' from SC group by Sno;

四 视图_第6张图片

4)建立统计每个学生的修课总学分的视图,要求列出学生学号和总学分(说明:考试成绩大于等于60才可获得此门课程的学分)。

create view v4 as select SC.Sno, sum(Credit) '总学分' from SC,Course Where SC.Cno=Course.Cno and Grade >=60 group by Sno

四 视图_第7张图片

(2)利用第(1)题建立的视图,完成如下查询:

1)查询考试成绩大于等于90分的学生的姓名、课程名和成绩。

select Sname,Cname,Grade from v2 where Grade >= 90;

四 视图_第8张图片

2)查询选课门数超过3门的学生的学号和选课门数。

select 学号,选课门数 from v3 where 选课门数>3;

3)查询计算机系选课门数超过3门的学生的姓名和选课门数。

select Sname,选课门数 FROM Student,v3

WHERE v3.学号=Student.Sno AND Sdept='计算机系' AND 选课门数>3

4)查询修课总学分超过10分的学生的学号、姓名、所在系和修课总学分。

select Student.Sno,Sname,Sdept,总学分 from v4,Student where Student.Sno=v4.Sno and 总学分>10

5)查询年龄大于等于19岁的学生中,修课总学分超过10分的学生的姓名、年龄、所在系和修课总学分。

select Sname,Sage,Sdept,总学分 from v4,Student where Sage>=20 and Student.Sno=v4.Sno and v4.总学分>10;

4、实验小结

本次实验中,我学习了数据库中的视图。视图是一个虚拟表,它是由一个或多个基本表的行或列组合而成的,具有与基本表相同的数据结构。通过这次实验我理解了SQL成熟设计基本规范,能够熟练使用SQL语句来创建需要的视图,定义数据库外模式,并能使用所创建的视图实现数据管理。 使用SQL对数据库进行各类查询数据操纵操作,掌握单行数据插入、多行数据插入,理解空值的意义及处理方式;掌握数据的修改,包括单行和多行数据修改,单列修改和多列数据修改;针对给定的数据库模式以及相应的应用需求,创建视图和带WITH CHECK OPTION的视图,并验证视图WICH CHECK OPTION选项的有效性。在实验过程中,我们通过使用SQL语句创建了视图,并通过查询语句验证了视图的正确性。总的来说,视图是数据库中非常有用的工具,可以提高查询效率、加强数据安全性和保证数据独立性。

你可能感兴趣的:(数据库原理应用实验,数据库,sql)