视图作用是什么

所谓视图(View)其实是执行查询语句后得到的结果,但这个查询结果可以仿真成数据表来使用,所以有人也称它为“虚拟数据表”,视图在操作上和数据表没有什么区别,但两者的差异是其本质是不同的:数据表是实际存储记录的地方,然而视图并不保存任何记录,它存储的实际上是查询语句,其所呈现出来的记录实际来自于数据表,可以为多张数据表,大家由此可以预见到视图应用的弹性!我们可以依据各种查询需要创建不同视图,但不会因此而增加数据库的数据量。

视图是为用户对数据多种显示需求而创建的,其主要用在一下几种情况:

(1)限制用户只能访问特定表特定条件的内容,提高系统的安全性。

(2)隐藏表结构、创建多种形式的数透视,满足不同用户需求。

(3)将复杂的SELECT语句和表JION形成一个视图,给用户提供一个良好的接口。

(4)为使用频率较高的联表聚合运算创建索引视图,以提升程序的性能。

(5)创建分区视图调用远程数据,实现数据的分布式存储与查询,提升程序的吞吐能力。

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图在数据库中并不是以数据值存储集形式存在,除非是索引视图。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。分布式查询也可用于定义使用多个异类源数据的视图。例如,如果有多台不同的服务器分别存储您的单位在不同地区的数据,而您需要将这些服务器上结构相似的数据组合起来,这种方式就很有用。

视图的优点与缺点

优点:

● 简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件。

● 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上。

● 逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。缺点,主要如下。● 性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,SQL Server也把它变成一个复杂的结合体,需要花费一定的时间。

● 修改限制:当用户试图修改视图的某些行时,SQL Server必须把它转化为对基本表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于比较复杂的视图,可能是不可修改的。

所以,在定义数据库对象时,不能不加选择地来定义视图,应该权衡视图的优点和缺点,合理地定义视图。

mysql中 视图的优缺点_数据库视图优缺点分析相关推荐

  1. mysql中ak替换键_数据库:唯一性约束_alternate key(替换键) mySQL Oracle 数据库 ak 唯一性约束...

    数据库:唯一性约束_alternate key(替换键) mySQL Oracle 数据库 ak 唯一性约束 数据库:唯一性约束 所谓唯一性约束(unique constraint)不过是数据表内替代 ...

  2. MySQL中地点的数据类型_数据库中地址的数据类型

    数据库中用什么数据类型存储电话号码比较合理? 因为涉及到固定电话,所以一般用varchar2 ,单纯手机号码的话可以用number. 数据类型分类: 数字型- Integer(整型).Long(长整型 ...

  3. MYSQL中什么是规范化_数据库设计 - 什么是规范化(或规范化)?

    规范化基本上是设计数据库模式,以避免重复和冗余数据. 如果某些数据在数据库中的多个位置重复,则存在在一个位置而不是另一个位置更新的风险,从而导致数据损坏. 从正常形式到正常形式有许多归一化水平. 每种 ...

  4. mysql中char存储中文_数据库中的字符类型存储字符和汉字的数量

    sqlServer2012(936 简体中文GBK )为例: 例如: varchar(10),只能存储10个英文字符或数字,也只能存储5个汉字: char(10),只能存储10个英文字符或数字,也只能 ...

  5. mysql中id是什么_数据库中的id是什么

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. mysql 中default什么意思_数据库中default的用法正确使用方法

    数据库中default的用法的正确使用方法你清楚吗,今天学习啦小编就跟大家详细介绍下数据库中default的用法,希望能帮到大家. 数据库中default的用法的用法 SQL Server数据库def ...

  7. mysql中的存储过程优点_数据库存储过程在优点

    存储过程 sql语句执行的时候要先编译,然后执行.存储过程就是编译好了的一些sql语句.应用程序需要用的时候直接调用就可以了,所以效率会高. 存储过程介绍 存储过程是由流控制和SQL语句书写的过程,这 ...

  8. mysql中distinct是什么_数据库中 DISTINCT 的作用是什么?

    展开全部 SQL数据库中, DISTINCT表示去掉重复的行,作用是针对包含重复值的数据表,用于返回唯一不同的值.语法是636f707932313133353236313431303231363533 ...

  9. MySQL中什么是码_数据库中的码是什么含义?

    展开全部 1.超码e68a843231313335323631343130323136353331333365656662: 超码是一个或多个属性的集合,这些属性可以让我们在一个实体集(所谓的实体集就 ...

最新文章

  1. 代码流程图怎么画_程序流图怎么画?详细图文解析绘制程序流程图
  2. 软件工程综合实践阶段小结(2)
  3. 简述mysql的概念及作用_数据库 简答题
  4. Android异步下载网络图片(其三:ExecutorService)
  5. linux 设备节点 驱动,【Linux驱动】自动创建设备节点
  6. Java初始化顺序研究
  7. vs2010 设计视图中控件无法加载,提示未将对象设置到对象的实例。
  8. 守护进程之PHP实现
  9. 大数据在智慧城市中的应用有哪些
  10. CentOS 7设置开机启动服务,添加自定义系统服务
  11. spring-boot-route(十九)spring-boot-admin监控服务
  12. 跨时钟域处理所用到的同步器
  13. Swagger Error Missing required property: responses ✖ Swagger Error Additional properties not allowe
  14. Java 6-2:收放自如,融汇贯通,让线程不再疯癫——线程的阻塞和关闭
  15. 采用Resnet做UC Merced Land Use Dataset数据分类
  16. SpringCloud概括
  17. 聪明的人脸识别3——Pytorch 搭建自己的Facenet人脸识别平台
  18. 网站漏洞修复对DiscuzX3.4论坛总是被篡改页面
  19. xp系统什么梗_电脑分区4K对齐,对系统的影响
  20. SourceTree系列5:贮藏和修复Bug

热门文章

  1. php如何调用手机拨打电话,ionic调用手机系统的拨打电话
  2. 红黑树与平衡二叉树_百图详解红黑树,想不理解都难
  3. cpu散热器怎么拆_电脑CPU处理器与整机温度高 教你简单解决
  4. dbms数据库管理系统_DBMS中的数据库语言
  5. ruby中、.reject_Ruby中带有示例的Array.reject方法
  6. 计算机网络子网划分_子网划分和超网| 计算机网络
  7. c ++查找字符串_C ++朋友功能| 查找输出程序| 套装1
  8. this.getstate_Java线程类Thread.State getState()方法(带示例)
  9. 云盾idaas登陆_移动端扫码登录IDaaS平台
  10. ajax 跨站返回值,jquery ajax 跨域问题