MySQL(13)-视图

Posted H_Cisco

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL(13)-视图相关的知识,希望对你有一定的参考价值。

 视图概述

 视图是从一个或几个表或视图中导出的虚拟表,其结构和数据来自于对表的查询在物理上是不存在的,也就是没有专门的地方为视图存储数据。在建立视图时被查询的表称为基表,视图并不在数据库中以存储的数据值集的形式存在,它的行和列数据都来自于基表,并且是视图在被引用时动态生成。

 效率高

 安全性高

 定制数据

 可以对表合并和分割

 不影响

 

 命令行方式创建

  

 

 查看视图

 

 删除视图

 drop view v_kk

 

 

 

 

 

 

create view V_NSTUINF

as select sc.sno,student.sname,sc.score from student,sc where student.sno=sc.sno and student.ssex='男' and sc.score>75 and sc.score<100

create view V_ KCMIN as

SELECT course.cname,min(sc.score)

from course

inner join sc

on course.cno=sc.cno

GROUP BY course.cno

create view V_ COU_AUG as

select sno,count(cno),avg(score)

from sc

group by sno

CREATE view V_ STUSCINF as

select sc.sno,student.sname,course.cname,sc.score

from student,sc,course

where student.sno=sc.sno and sc.cno=course.cno

create view V_ AVGSUM as

select sno,sname,avg(score),sum(score)

from `v_ stuscinf`

GROUP BY sno

select * from `v_ avgsum` where avg(score) > 80

update `v_ stuscinf` set score=score+score*0.1 

 

alter view `v_ nstuinf` as

select sno,sname,sage

from student

where ssex='男'

 

 

  • 将视图V_ NSTUINF显示内容,修改为查询男生的学号、姓名、年龄。
  • 通过修改视图V _STUSCINF,能否将所有分数加上10%?如果不能,请修改基表sc,将所有分数加上10%,再查看视图V. STUSCINF中
  • 查询视图V_ AVGSUM中,均分在80以上的记录。。
  • 在视图V_STUSCINF上,创建视图V_ AVGSUM可以查询到所有学生编号,姓名,平均分,总分。
  • 创建一个视图V_ STUSCINF,通过该视图可以查询到所有学生编号,姓名,课程名,成绩。
  • 将各位学生选修课程的门数及平均成绩定义为视图V_ COU_AUG。
  • 创建一个视图V_ KCMIN,通过该视图可以查询到每个课程的名称及最低成绩。
  • 创建一个视图V_ NSTUINF,通过该视图可以查询到成绩在75-100内并且性别是男生的学生编号,姓名,成绩。

以上是关于MySQL(13)-视图的主要内容,如果未能解决你的问题,请参考以下文章

在 MySQL 中创建视图需要多长时间? [复制]

mysql之视图

MySQL 约束未通过视图传递

MySQL 视图 - 性能不佳

如何获取视图之间的mysql依赖关系?

mysql 扩展