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

流量统计网站推广法自助网站建设方法

流量统计网站推广法,自助网站建设方法,自己做的网站本地虚拟上传,企业网站建设的要素有哪些文章目录 简介创建视图修改视图删除视图总结参考文献 简介 视图,即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.yayakq.cn/news/507565/

相关文章:

  • 拉米拉云网站建设wordpress反应很慢
  • 杭州公司官方网站制作网站ui外包
  • 做高清视频的网站营销方案包括哪些内容
  • 网站设计的规范给我免费的观看
  • 网站搬家怎么做如何给异地网站做镜像
  • 营销网站制作皆选ls15227负责视频广告
  • 南通网站建设培训济南城市建设集团有限公司网站
  • dede5.7内核qq个性门户网站源码企业管理软件排行榜前十
  • 一元夺宝网站建设建工网校一建
  • wordpress 建站案例wordpress不同侧边栏
  • 河北建设工程招标信息网官网浑江区关键词seo排名优化
  • 织梦建网站儿童摄影网页制作代码html
  • 网站开发调用别人网站的组件wordpress自动采集影视
  • 免费做外贸的网站汽车之家官方网站
  • 做网站服务器收费吗购物app开发
  • 去迪拜网站做乞丐软件之家
  • django做网站快吗免费简历模板在线下载
  • 修改网站参数网站更换服务器教程
  • 如何评价网站建设优化大师是干什么的
  • 海口免费自助建站模板青岛房产中介网站开发
  • 企业网站源代码下载团购做的好的网站有哪些
  • 如何注册一个网站域名关于seo的行业岗位有哪些
  • 做网站备案什么意思彩票网站该怎么建设
  • 海口模板建站系统酒店建设网站的优势有哪些
  • 在银行网站如何做理财风险评测基础微网站开发可信赖
  • 丽江市住房建设局网站华夏运用网站
  • 做直播网站软件有哪些软件有哪些仿58同城分类信息网站源码
  • 直播网站建设需要什么软件深圳博大建设公司
  • 盘锦建设工程信息网站wordpress 更改目录
  • 中国传统色彩网站建设方案xampp里wordpress安装教程