sql里的table和view有什么区别?

  算法/数据结构/数据库 sql    浏览次数:444        分享
1

我了解到的是view也是每行代表一个数据,然后有很多列。

那么sql里的table和view有什么区别?

 

渣渣飞   2019-07-06 15:31



   2个回答 
7

view是视图,不是真正的表table。

数据库中的数据都是存储在表中的,而视图只是一个或多个表依照某个条件组合而成的结果集,一般来说你可以用update,insert,delete等sql语句修改表中的数据,而对视图只能进行select操作。但是也存在可更新的视图,对于这类视图的update,insert和delete等操作最终会作用于与其相关的表中数据。因此,表是数据库中数据存储的基础,而视图只是为了满足某种查询要求而建立的一个对象。


表是物理存在的,你可以理解成计算机中的文件!

视图是虚拟的内存表,你可以理解成Windows的快捷方式!

1.视图是数据库数据的特定子集。可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据,这种方法可以保护用户和应用程序不受某些数据库修改的影响。2.视图是抽象的,他在使用时,从表里提取出数据,形成虚的表。 不过对他的操作有很多的限制 。

3. 而且视图是永远不会自己消失的除非你删除它。  

  视图有时会对提高效率有帮助。临时表几乎是不会对性能有帮助,是资源消耗者。  

  视图一般随该数据库存放在一起,临时表永远都是在tempdb里的。  

4.视图适合于多表连接浏览时使用!不适合增、删、改.,存储过程适合于使用较频繁的SQL语句,这样可以提高 执行效率!  


视图和表的区别和联系

区别:1、视图是已经编译好的sql语句。而表不是  

           2、视图没有实际的物理记录。而表有。

           3、表是内容,视图是窗口

           4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改

           5、表是内模式,视图是外模式

           6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。

           7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 

           8、视图的建立和删除只影响视图本身,不影响对应的基本表。


联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

转载自:https://www.cnblogs.com/binyao/p/4899970.html

SofaSofa数据科学社区DS面试题库 DS面经

东布东   2019-07-08 07:59

2

table是真实存有数据的,而view只是一个虚拟的表,通常是基于一个真实的table的select后的结果。另外view通常只是可读的,但是一旦view关联到的表发生数值变化,view也会跟着变化。

SofaSofa数据科学社区DS面试题库 DS面经

Jiho   2019-07-09 15:19



  相关主题

hive里的LEFT SEMI JOIN是什么JOIN?   1回答

NoSql数据库是什么样的?   1回答

SQL里UNION和UNION ALL的区别是什么?   2回答

sql里nullif怎么用?   1回答

mysql怎么对每个group只选2行?   1回答

mysql里ORDER BY的默认排序是什么?   1回答

sql里where和having的区别是什么?   1回答

mysql里获取中位数和四分位数的函数是什么?   2回答

sql中limit m, n是什么意思?   2回答

sql里cross join有什么作用?   1回答

怎么在python中复制指定路径下的文件?   1回答

python的set进行append操作?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!