SQLServer 数据库 视图实验练习

练习六:视图

上机目的:

  1. 理解视图的定义及优点
  2. 熟练创建删除视图

上机练习:

  1. 创建视图v1,显示学生学号、姓名、性别、出生年月日、班级、课程名、成绩。

create view v1

as

select s.studno 学号,s.studname 姓名,s.studsex 性别,s.studbirthday 出生年月,s.classid 班级,ss.courseid 课程名,ss.studscore 成绩

from studinfo$ s,studscoreinfo$ ss

where s.studno=ss.studno

SQLServer 数据库 视图实验练习_第1张图片

  1. 创建视图v2,统计各学生学号、平均分、最高分、最低分、课程门数.

create view v2

as

select studno 学号,CAST(AVG(studscore) as numeric(4,2)) as 平均分,MAX(studscore) 最高分,MIN(studscore) 最低分,COUNT(*) 课程门数

from studscoreinfo$

group by studno

SQLServer 数据库 视图实验练习_第2张图片

  1. 创建视图v3,查询各学生的姓名、学号、平均分、最高分、最低分、课程门数.

create view v3

as

select studname,s.studno,CAST(AVG(studscore) as numeric(4,2)) avgscore,MAX(studscore) maxscore,MIN(studscore) minscore,COUNT(*) coursecount

from studinfo$ s,studscoreinfo$ ss

where s.studno=ss.studno

group by studname,s.studno

SQLServer 数据库 视图实验练习_第3张图片

  1. 创建视图v4,查询学生基本信息、班级信息、课程信息和成绩信息

create view v4

as

select s.studno,studname,studsex,studbirthday,

       c.classid,classname,

       ci.courseid,coursename,coursetype,coursecredit,

       studscore

from studinfo$ s,classinfo$ c,courseinfo$ ci,studscoreinfo$ si

where s.classid=c.classid and

      ci.coursename=si.courseid and

      s.studno=si.studno

SQLServer 数据库 视图实验练习_第4张图片

  1. 使用update命令,将学号为2011001的英语成绩改为60分。请问修改后对数据库中的哪些信息有影响?

update studscoreinfo$

set studscore=60

where studno=2011001 and courseid='英语'

studscoreinfo$视图v1,v2,v3,v4受影响

  1. 使用视图v4创建统计各学生的学号、姓名、班级、平均分、最高分、最低分、课程门数的视图v5

create view v5(学号,姓名,班级,平均分,最高分,最低分,课程门数)

as

select studno,studname,classid,AVG(studscore),MAX(studscore),MIN(studscore),COUNT(*)

from v4

group by studno,studname,classid

SQLServer 数据库 视图实验练习_第5张图片

  1. 创建加密视图v6,显示各学生的学号、平均分、课程门数,并与前面的非加密视图比较,简要说明其区别?

create view v6

with encryption

as

select studno,AVG(studscore) avgscore,COUNT(*) coursecount

from studscoreinfo$

group by studno

可以不让用户查看视图的定义文本

SQLServer 数据库 视图实验练习_第6张图片

  1. 使用视图(v2)查询平均分为85 以上的学生的学号、平均分、最低分、最高分、课程门数信息

SQLServer 数据库 视图实验练习_第7张图片

  1. 使用视图(v3)查询最高分大于80 以上的学生的学号、姓名、平均分、最低分、最高分、课程门数信息

SQLServer 数据库 视图实验练习_第8张图片

  1. 删除视图v1、v2

SQLServer 数据库 视图实验练习_第9张图片

  1. .什么是视图,视图有什么用处

视图:视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。

视图的作用:

优点:1.数据库视图可以简化复杂的查询;2.数据库视图有助于限制对特定用户的数据访问;3.数据库视图提供了额外的安全层;4.数据库视图可以定义计算列;5.数据库视图支持应用兼容性。

缺点:1.性能可能会较差;2.视图对表结构的依赖。

你可能感兴趣的:(SQLServer,sqlserver,数据库)