首先要明确的是表和视图是由 SQL 标准来定义的,而具体的实现就是由市面上的这些个数据库产品来完成的。
◆ 表与视图的关系
1. 两者处于不同的层次。
2. 表是真实存在的结构,而视图可以认为是虚拟的表。
◆ 下面用专业的术语来表述。
表 -- 是数据库中的主要结构,它总是表示单个的、特定的集合。每个表至少包含一个字段,即一个主键(primary key),他唯一地标识表的每条记录。
视图 -- 是由来自数据库中的一个或多个表或多个表的字段所组成的一个虚拟的表。实际上它自身不存储任何数据,存储在数据库中的有关视图的唯一信息几句是它的结构。
◆ 比如有两个(基本)表
客户表
订单表
这两个表中显然有共同的字段客户ID,可以通过一条 SQL 查询语句建立
客户-订单表
通过此种方式可以使得我们从不同的角度查看到数据库中的信息。
◆ 在说的简单些,视图就等价于查询。
视图 <=> 查询
在很多 RDBMS 程序中,视图通常是作为一个保存的查询来实现和引用的,或者更简单的说,作为一个查询来实现的。在大多数情况下,查询拥有视图的全部特征,唯一的区别在于它们的名字不同。
PS:你还是在实践中去体会吧,用用就知道了。:)
表指数据表,相当于数据原始资料。视图是对表的运算,生成的结果类似于表,存储的是运算方法,而不是具体数据。
首先,这玩意儿,和Oracle还是SQL Server还是MY SQL没太大关系。是SQL标准的一部分。
你要是只是想知道概念的话,看百科好了。
http://baike.baidu.com/view/71981.htm
举个例子
如果你是大学数据库管理员,为学校每个人都建立了户名和密码。记录在一个表中,如果大学还有分校,分校里也有数据库管理员,你可以给他建立个视图。因为查看视图的内容实际是运行建立视图的sql语句。所以当用户自己修改自己用户信息时,主表改变,查询视图时也同时输出最新的信息。如果你给分校里数据库管理员建立是表,那么用户自己修改自己用户信息时,必须得把原始表和新建表的内容都改了才行。否则你和分校里数据库管理员看到的信息不一样,这样就比建视图增加了许多麻烦。同时新建表也要占硬盘的存储空间。而查看视图的内容实际是运行建立视图的sql语句,所以不占硬盘的存储空间。