当前位置: 首页 > news >正文

网站推广链接网站建设j介绍ppt

网站推广链接,网站建设j介绍ppt,武义县建设局网站,假冒网站能通过备案登记吗文章目录 简介创建视图修改视图删除视图总结参考文献 简介 视图,即VIEW,是SQL中的一个重要概念,它其实是一种虚拟表(非实体数据表,本身不存储数据)。 视图类似于编程中的函数,也可以理解成是一个访问数据的接口。 从…

文章目录

  • 简介
  • 创建视图
  • 修改视图
  • 删除视图
  • 总结
  • 参考文献

简介

视图,即VIEW,是SQL中的一个重要概念,它其实是一种虚拟表(非实体数据表,本身不存储数据)。

视图类似于编程中的函数,也可以理解成是一个访问数据的接口。

在这里插入图片描述

从上图可以看出,视图实际上是一种介于数据表和用户之间的虚拟表。正常情况下,用户本来就可以跟数据表直接交互,那在中间放一个view层,相比有什么好处呢?

我简单介绍一下我的理解:

  • 针对开发人员来讲,可以简化每次查询的步骤,对于一些固定化的查询,可以将其保存成视图,下次直接调用视图,而不需要重新书写查询(类似一个查询函数)。
  • 权限管理功能(安全性)。可以针对不同的用户,制定不同的查询视图。用户只对部分数据有查看权限,而不可窥全豹。

比如说一张表有用户的身份证信息,我不想对外部人员提供这种敏感字段,但我必须给他提供这张表中的其他信息,比如说用户的性别、年龄等,那我就有两种方式来解决这个问题:

  1. 新建一个实体表。把原表的身份证字段去掉,剩下数据导入这个新实体表,对外提供新实体表;(缺陷显而易见,空间浪费,同步更新等,优点是查的快)
  2. 使用view,筛掉身份证字段。(没有空间占用,自动同步更新等,但每次查询都要重新计算,因此查的会慢)

创建视图

以MySQL为例,其创建视图的语法:

create view view_name as
select column_1, column_2,...
from table_name
where condition

可以看到,视图是建立在SQL查询的基础上,封装成了一个视图。

这样就会基于SQL查询的结果集来形成一张虚拟表。但是这个虚拟表并不占用数据存储空间,每次调用视图都是跑一遍查询,将结果集缓存在内存中的过程,所以被称为是虚拟表,视图每次查出来的数据都是新的。

还有比较重要的一点,上面的语法中只用了一张表,只是为了简化演示,实际上view封装的SQL查询跟正常的查询没有区别,你可以join任意多个表来创建一个视图

当视图创建完之后,就可以直接作为一张表来使用了:

select * from view_name

另外,允许嵌套视图的存在。即可以在视图的基础上基础创建视图

create view view_name as
select column_1, column_2
from view_name_a
where condition

或者把视图作为子查询的内表都可以。

实际上,在某些情况下,你可以这么写:

delete from view_name where condition

(据说)如果视图是基于单表的,那源table中符合情况的数据,大概率会被删掉;但如果视图中join了多个表,那么这种delete基本不会成功,因为修改会涉及多个实体表。

这个需要注意,不要对视图进行任何update操作!!! 因为有可能会改掉底层数据。

修改视图

alter view view_name as
select column_1, column_2
from view_name
where condition

可以看到,修改视图的语法跟创建视图完全一样。

我觉得alter内部就是先删除老视图,然后再重新create。。。

提一句SQLite,这个轻量级数据库,并不支持修改视图,即只能使用CREATE和DROP,如果想要修改视图的话,只能先DROP,后重新CREATE。

删除视图

drop view view_name

总结

视图只是虚拟表,它只是封装了底层数据表的查询接口,因此有些RDBMS不支持对视图创建索引。(有的支持,如新版本的SQL server)。

再次总结下视图的好处:

  1. 安全性:视图是基于底层实体数据表的,使用视图时,一般不会通过视图来对底层数据进行修改,大部分情况下都会限制这种修改操作,在一定程度上保证了底层表的安全性。(但是在某些情况下的确是可以通过update视图来改变底层数据的,所以视图的安全性并不绝对);另外,针对不同用户,提供不同的视图来借此开放不同的数据权限,也是安全性的一个体现;
  2. 简单清晰:视图是对SQL查询的一个封装,实际上就是一个函数,把(可能会多次使用的)复杂的查询提前写成模块,既简化了调用,又方便了查询的复用。同时,嵌套视图这一设计,类似模块化编程,大大提升了查询的可复用。

那接下来还有最重要的一个问题,视图跟临时表相比,有什么优劣?(前面简单介绍了一下)

首先,临时表其实可以分两种,一种是SQL中的临时表,即在一次查询中临时存在的表,查询连接结束后,临时表就会被自动释放;另一种是我们口头意义上的临时表,是可以持久保存的实体表,其实就是新建一张表,然后把数据放进去。

视图胜在可以自动更新啊,如果要手动维护一张实体临时表的话,太麻烦,每次有更新之后还需要手动导进去。

参考文献

  1. 12丨视图在SQL中的作用是什么,它是怎样工作的?
http://www.laogonggong.com/news/67834.html

相关文章:

  • 专注新乡网站建设两个wordpress同步
  • 如何看到网站做哪些关键字上海网页设计工资
  • 网站后台不能添加内容网站建设方案书纯文字
  • 济南城市建设集团网站室内装修设计企业
  • 免费搭建网站模板网站 黑白
  • 手机网站标准网站建设近义词
  • 东莞各类免费建站深圳网站制作招聘
  • 做公益活动的网站wordpress加上特效
  • 如何建立一个网站视频教学免费seo关键词优化排名
  • 河南郑州广告公司网站建设家具网站设计网
  • 自己做的网站如何加视频营销型网站建设需要懂什么软件
  • 网站建设公司华网天下官网wordpress页面透明度
  • 建个网站多少费用怎么建网址
  • 摄像机怎么在自己家网站做直播proxy网站
  • 东阳网站建设杭州企业宣传画册制作公司
  • h5商城网站是什么意思免费网站维护
  • 做网站标志有限颜色使用的吗网站建设开发的主要流程
  • 集团微网站建设望野古诗拼音
  • 镇江网站seo外包wordpress页码
  • 成品门户网站源码免费新网站外链怎么做
  • 做局域网站数据库山西seo基础教程
  • 建筑设计网站免费wordpress网页设计
  • 宁波北仑做网站淘数据
  • 响应式布局网站建设住建城乡建设网站
  • 达州北京网站建设美食分享网站建设策划书
  • 高端网站建设的价格建设网站需要什么信息
  • 什么网站ppt做的好西安seo经理
  • 西宁制作网站多少钱网站怎么在成都备案
  • 威海网站建设公司排名哪个网站可兼职做logo
  • php网站建设学习城阳做网站找哪家好