编程问答
视图的学习总结 -凯发ag旗舰厅登录网址下载
1.视图的简介
mysql 支持两种表;基本表和视图,基本表都是使用create table语句创建的,并且是唯一的存储数据的表,而视图只是把基本表中的数据组织起来构成一个“虚拟”表的一种命令或者形式,之所以说“虚拟的”,就是因为只用当视图用于一条语句中的时候,他才能存在。mysql获取构成视图公式的命令,执行它,并且像一个真实的表那样显示给用户。
2.视图的创建
create view towns
select distinct town
from players
一个视图的内容并没有被存储,而是当视图被引用的时候派生了,这就是说嘛,根据定义,视图的内容和基本表的内容一样,对基本的表的更新,就可以再视图中立即看到,用户就不用担心视图内容的完整性,只要维护基本表的完整性。
注意:可以在一个视图公式中声明另一个视图,也就是说视图可以嵌套。
3.更新视图
如果视图中包含了with check option 字句,使用update,insert和delete对视图做出的所用改变都将进行有效性的检查:
注意:前七个是适合更新的,
更新的视图中的调节进行相关的检查,cascaded是默认的。
drop view用来删除视图,通过使用drop view,引用了被删除的视图的所用的其他视图也会自动被删除,当删除一个基本表的时候,直接或者间接地定义在这表的所用的视图也被删除了。
例如: drop view towns
视图可以用在各种应用程序中
5.1例程语句的简化
例如
select *
from playerno
where playerno in
(select playerno
from penalties
)
and town=’straford’
和
select town,count(*)
from players
where playerno in
( select playerno
from penalties
)
group br town
这两条都使用至少引发一次罚款的球员,因此,可以用一个视图来定义这条语句
create view pplayers as
select *
from playeron
where playerno in
(select playerno
from penalties)
这样都可以简化前面的语句了
5.2 select 语句的分部编写
例子:对于来自stratford中的每个球员,如果他曾经引发一次罚款,并且罚款额比那些2号球队打比赛的球员以及为一只first分级的球队打过一场比赛的球员的平均罚款要高的话,那么就获取他的名字和首字母
create view greater as
select distinct playerno
from penalties
where amount >
(select avg(amout)
from penalties
where palayeron in
(select playerno
from matches
where teamno=2)
)
在创建一个视图。其中包括了那些为first分级的一支球队比赛过的所用球员
create view frist as
select distinct playerno
from match
where teamno in(
select teamno in
(select teamno
from teams
where divison=’first’))
使用这两个视图,很轻松的回答了问题
select nam,initials
from players
where town=’stratford’
and playerno in(select playerno
from greater)
and playerno in
(select playerno
from first)
5.3 数据的安全性
视图可以用来保护表的一部分
转载于:https://www.cnblogs.com/hylaz/archive/2012/11/05/2756041.html
总结
以上是凯发ag旗舰厅登录网址下载为你收集整理的视图的学习总结的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。
- 上一篇: 轻松学mvc4.0–2 创建用户列表页面
- 下一篇: 前端开发利器webstorm 3.0配置