1、视图和表的区别?

  • 视图是虚拟的表,视图展示的数据来自于 基本表。
  • 视图中不存储具体的数据,而存储的是sql逻辑,基本表的数据发生改变,视图的展示结果也会随着发生改变,它占用少量的物理空间;而表中保存的是数据,占用大的物理空间;
  • 对视图的操作跟普通表是一样的,如:创建视图,删除视图。。视图的建立create和删除drop只影响视图本身,不影响对应的基本表。
  • 若视图中的字段数据是来自于基表的话,一般是可以对视图中的数据 进行更新的,对视图数据进行添加、删除和修改操作会直接影响基本表。其他情况不允许更新,如:若视图中的字段使用了函数avg(age)等,就不能进行更新;
  • 视图的使用:一般都是把基表的子查询sql语句 封装成视图,方便使用,而且更高效。
  • 隐藏一些不想展示给用户的数据。只展示必要的数据。如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等。

2.两者的联系
视图是基于基本表上建立的表,它的结构和内容都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。

3.视图的两种查询机制——创建视图时进行指定使用哪种视图查询机制

  • 1、替代式merge :当使用视图进行查询时,实际上是把查询视图的sql语句 转换成一个 带有子查询的sql语句,然后再进行查询。(即:一步到位:更加高效,,不像具化式,还得在内存中再搞一个临时表)
    • 此种机制下,你对视图更新,同时会更新基本表的数据。 在这里插入图片描述
  • 2、**具化式:**是先把视图查出来,作为一个临时的表放到内存中,然后 再对临时表进行一个查询。(即:分两个步骤)
    • 此种机制下,对视图更新只是对内存中的临时表进行的更新,基本表不会更新。(不能对视图进行更新)
      在这里插入图片描述

4、创建视图时的选项: 在这里插入图片描述

  • 若创建视图时,指定了with check option的选项,那么在更新视图时,就会检测你的更新操作是否满足视图的条件。不满足,就不让你进行一个更新。
    • 如这个视图都是 salary > 2000的,那么你就不能往视图中插入一个salary为1000的记录。 在这里插入图片描述
      5、哪些视图是可更新的,哪些是不可更新的?
      主要 构建视图的语句中 出现如下的东西,此视图都不可以更改。
      在这里插入图片描述
      演示:此种情况下,视图中的数据不是来自于一个基表中,因此不能更新视图数据。 在这里插入图片描述
区别?视图是虚拟的表,包含的是sql逻辑,占用少量的物理空间。而表中保存的是数据,占用大的物理空间;当使用视图时,才会根据视图存储的sql逻辑动态生成一个虚拟表;对视图的操作跟普通表是一样的(增删改查);视图的建立create和删除drop只影响视图本身,不影响对应的基本表。应用:隐藏一些不想展示给用户的数据。只展示必要的数据。如:社会保险基金表,可以用视图只显示姓名,地址,而不显示...
视图 是从一个或几个基本 (或 视图 )中导出的虚拟的 。在系统的数据字典中仅存放了 视图 的定义,不存放 视图 对应的数据。 视图 是原始数据库数据的一种变换,是查看 中数据的另外一种方式。可以将 视图 看成是一个移动的窗口,通过它可以看到感兴趣的数据。 视图 是从一个或多个实际 中获得的,这些 的数据存放在数据库中。那些用于产生 视图 叫做该 视图 的基 。一个 视图 也可以从另一个 视图 中产生。 视图 的定义存在数据库中,与...
视图 (view) 与 数据库中的 是真实存取数据的, 里边的数据,可以 注意:col 是列的意思,val 是值的意思;col = colomn, val = value; 增(add)删(delete)改(update) 查(query,fetch,retrieve) 1.增(add) INSERT INTO table_name(col1,col2,…) values(val1,val2,…); INSERT INTO t1(id,name) values(1,‘test’); 2.删(de
一般来说 视图 是为了满足某种查询而建立的一个对象。 视图 适合于多 连接浏览时使用,不适合增、删、改,存储过程适合于使用较频繁的SQL语句,这样可以提高执行效率!一个 视图 可以对应一个基本 ,也可以对应多个基本 (多 字段名称不能有重复)。 1、 是内容, 视图 是窗口 2、 视图 没有实际的物理记录。而 有。 3、 视图 是已经编译好的sql... 1. 视图 内容列,可以由多个基本 中的列来填充 2. 视图 的列删除,整 删除,不影响基本 3.( 视图 仅由一个基本 来填充时)修改 视图 中的数据,会影响基本 内的数据 4.当 视图 来自多个基本 的数据,不能修改删除里面的数据 创建一个 视图 create view view_name1#创建 视图 as select 语句#定义 视图 的字段规则 [with [cascaded][local] check option]#这一行是可选项,对 视图 更新时,会检查 视图 的规则 视图 视图 是虚拟 ,它可以包含来自多个 的数据; 两者 区别 :1) 视图 是已经编译好的SQL语句,而基本 不是;2) 视图 没有实际的物理记录,而基本 有;3)基本 是内容, 视图 是窗口;4)基本 只用物理空间而 视图 不占用物理空间;5)基本 是内模式,试图是外模式;6)基本 属于全局模式中的 ,是实 视图 属于局部模式的 ,是虚 ;7) 视图 的建立和删除只影响 视图 本身,不影响对应的基本 视图 是数据库中虚拟的 ,并不真实存储数据,只存储数据的定义。 两者的 区别 和联系是什么? 区别 :存储方式不同(基本 ,真实存储数据; 视图 ,不存储真实数据,存储数据的定义),存在形式不同(基本 ,真实存在于数据库中; 视图 ,并不真实存在于数据库中,是一张虚拟的 ) 联系: 视图 是由一个或者多个基本 导出的
基本 :基本 是本身独立存在的 ,在SQL中一个关系就对应一个 视图 视图 是从一个或几个基本 导出的 视图 本身不存在独立存储在数据库中,是一个虚 。即数据库中只存放 视图 的定义而不存放 视图 对应的数据,这些数据仍然存放在导出 视图 的基本 中。 视图 的优点: 视图 能够简化用户的操作, 视图 使得用户能够以多种角度看待同一数据, 视图 对重构数据库提供一定的逻辑独立性, 视图 能够对机密数据提供安全保护,适当的...
2、 视图 没有实际的物理记录,而 有; 3、 是内容, 视图 是窗口; 4、 占用物理空间而 视图 不占用物理空间, 视图 只是逻辑概念的存在, 可以及时对它进行修改,但 视图 只能用创建的语句来修改; 5、 是三级模式结构中的概念模式,试图是外模式; 6、 视图 是查看数据 的一种方法,可以查询数据 中某些字段构成的数据,只是一些SQL语句的集合,从安全的角度说, 视图 可以不给用户接触数据 ,从而不知道 结构; 7、 属于全局模式中的 ,是实 视图 属于局部模式的 ,是虚 ; 所有的Mysql列类型都可以被索引。 mysql支持BTREE索引、HASH索引、前缀索引、全文本索引(FULLTEXT)【只有MyISAM引擎支持,且仅限于char,varchar,text列】、空间列索引【只有MyISAM引擎支持,且索引的字段必须非空】,但不支持函数索引。 MyISAM和InnoDB存储引擎的 默认创建BTREE索引, MEMORY存储引擎的 默认创建HASH索引。 二、创建索引 create index语法为
视图 概述 视图 是从一个或几个基本 (或 视图 )导出的 。它与基本 不同,是一个虚 。数据库中只存放 视图 的定义,而不存放 视图 对应的数据,这些数据仍存放在原来的基本 中。 所以一旦基本 中的数据发生变化,从 视图 中查询出的数据也就随之改变了。从这个意义上讲, 视图 就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。 视图 一经定义,就可以和基本 一样被查询、删除。也可以在一个 视图 之上再定义新的 视图 ,但对 视图 的更新(增、删、改)操作则有一定的限制。 视图 只存定义,每次查看 视图 就相当于执行一次语句。 视图 的特点 视图 很相似,都是可以包含相同类型的数据的二维结构,都有行,列,单元格,在select语句的from字句中,都可以将他们用作数据源。 当需要区分 视图 的时候,通常 被称为基 或者数据 。 不同之处: 1: 直接将数据存储在磁盘上, 视图 是将sql语句存储到磁盘上 2: 视图 是建立在 的基础上, 存储数据库中的数据,而 视图 显示已经在 中的