数据库中视图和表的区别
数据库中的数据都是存储在表中的,而视图只是一个或多个表依照某个条件啊=组合而成的结果集,一般来说你可以用update,insert,delete等SQL语句修改表中的数据,而对视图只能进行select操作。但是也存在可更新的视图,对于这类视图的update,insert和delete等操作最终会作用于与其相关的表中数据。因此,表是数据库中数据存储的基础,而视图只是为了满足某种查询要求而建立的一个对象。
表是物理存在的,你可以理解成计算机中的文件!
视图是虚拟的内存表,你剋理解成Windows的快捷方式!
1、视图是数据库数据的特定子集。可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据,这种方法可以保护用户和应用程序不受某些数据的影响。
2、视图是抽象的,它在使用时,从表里提取出数据,形成虚的表。不过对他的操作有很多的限制。
3、而且视图是永远不会自己消失的除非你删除它。
4、视图适合于多表连接浏览时使用!不适合增、删、改,存储过程适合于使用较频繁的SQL语句,这样可以提高执行效率!
区别:
(1)视图已经是编译好的SQL语句,而表不是。
(2)视图没有实际的物理记录,而表有。
(3)表是内容,视图是窗口。
(4)表只是物理空间而视图不占物理空间,视图只是逻辑观念存在,表可以及时对它进行修改,但视图只能有创建的语句来修改。
(5)表是内模式,视图是外模式。
(6)视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知到表结构。
(7)表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
(8)视图的建立和删除只影响视图本身,不影响对应的基本表。
(9)不能对视图进行update或者insert into操作。
联系:
视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。
总结:视图是一个子查询,性能肯定会比直接查询要低(尽管SQL内部有优化),所以使用视图时有一个必须要注意的,就是不要嵌套使用查询。尤其是复杂查询。
视图有什么用:
(1)当一个查询你需要频频的作为子查询使用时,视图可以简化代码,直接调用而不是每次都去重复写这个东西。
(2)系统的数据库管理员,需要给他人提供一张表的某两列数据,而不希望他可以看到其他任何数据,这时可以建一个只有这两列数据的视图,然后把视图公布给他。
数据库中视图和表的区别相关推荐
- 数据库中视图与表的区别以及如何创建视图、创建表
联系: 1.视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在: 2.一个视图可以对应一个基本表,也可以对应多个基本表: 3.视 ...
- MySQL中视图与表的区别
1.MySQL中视图和表的区别以及联系 (1)视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化的表,而表不是. (2)视图没有实际的物理记录,而表有. (3)表是内存,视图是窗口. (4 ...
- mysql中视图和表的区别及联系,mysql 中视图和表的区别以及联系是什么?
表是内容,视图是窗口.视图是已经编译好的sql语句,是基于sql语句的结果集的可视化的表,而表不是. 2)实与虚 表属于全局模式中的表,是实表:视图属于局部模式的表,是虚表. 3)是否存在物理记录 视 ...
- mysql中视图和表的区别及联系_MySQL中Update、select联用操作单表、多表,及视图与临时表的区别...
一.MySQL中使用从表A中取出数据来更新表B的内容 例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin.SQL语言中不要显示的出现select关键字 upda ...
- MySQL 中视图和表的区别以及联系是什么?
两者的区别: (1)视图是已经编译好的 SQL 语句,是基于 SQL 语句的结果集的可视化的表,而表不是. (2)视图没有实际的物理记录,而基本表有. (3)表是内容,视图是窗口. (4)表占用物理空 ...
- 数据库中视图和基本表的区别
1.视图和表的区别? 视图是虚拟的表,视图展示的数据来自于 基本表. 视图中不存储具体的数据,而存储的是sql逻辑,基本表的数据发生改变,视图的展示结果也会随着发生改变,它占用较小的物理空间:而表中保 ...
- 视图与表之间的异同点_视图和表的区别和联系
数据库中的数据都是存储在表中的,而视图只是一个或多个表依照某个条件组合而成的结果集,一般来说你可以用update,insert,delete等sql语句修改表中的数据,而对视图只能进行select操作 ...
- SQL Server 将指定的数据库中的所有表都列出来
在很多情况下我们需要将指定的数据库中的所有表都列出来.在使用c#进行软件开发时,我们有哪些方法可是实现这个目的呢?本人对此进行概要的总结,有以下6中方式可以实现这个目的. 1.sqldmo SQLDM ...
- 获取数据库中的所有表
本Blog登出后受到了大家的关注,其中"盛国军"朋友提出了使用存储过程"sp_tables"也可以实现这个目的,所有本人对这个Blog有进行了完善. 在很多情况 ...
最新文章
- 某大龄程序员用亲身经历推翻35岁红线:大厂offer拿到手软,35岁才是黄金年龄!...
- 基于 HTML5 WebGL 的 3D 棉花加工监控系统
- AB1601LED之pwm
- python—列表、字典生成式
- 【Android开发—智能家居系列】(二):用手机对WIFI模块进行配置
- Autolayout代码实现举例-01使用线性公式
- 安装Scrapy失败的解决方法
- PyTorch中的生成对抗网络(GAN)
- 库仑计DS2781通信失败
- Ubuntu16.04安装slickedit-pro2017
- Kindle Paperwhite2(第6代)5.7.2.1固件升级教程
- 视频编码格式、视频码率、视频帧率、分辨率的概念
- Qt Designer的简单使用
- (亲测解决)每次打开excel文件都会出现两个窗口,一个是空白的sheet1,另一个是自己的文档
- SQL Server2008R2中文版安装教程
- ESP定律脱压缩壳aspack
- java开发app_使用java制作app教程
- 月之数 HDU2502
- “只用 1 分钟” - 超简极速 Apk 签名 多渠道打包神器
- 高德地图坐标查询工具——JavaScript