plsql知识梳理-视图1视图介绍视图是一个逻辑表,也是一个非常重要的方案对象。实际上,视图是查看表的一种方式。视图是对根据预定义的选择标准由一个或多个行的集合建立起来的动态表的静态定义。视图可以用来定义来自一个或多个表的行和列的多种连接。通过视图,可以查看到表中的数据。视图是查看数据库表中的数据的一种方法。视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力。视图只是一种逻辑对象,是一种虚拟表,并不是物理对象,因为视图不占物理存储空间。在视图中被查询的表称为视图的基表。通常通过它就像使用表一样访问数据。要记住通过视图引用的数据通常来自它后面的基表。视图应该使用一致的命名约定。例如,给所有的视图增加一个前缀,如每一个视图都以v_、view_或vw_开头。这样,可以使用户在看到名称时就立即知道它代表的对象是视图。2视图好处使用视图的优点,如集中用户使用的数据、掩码数据的复杂性、简化权限管理以及为向其他应用程序输出而重新组织数据等。集中用户使用的数据:视图创建了一种可以控制的环境,即表中的一部分数据允许访问,而另外一部分数据则不允许访问。那些没有必要的,敏感的或不适合的数据都从视图中排除掉了。掩盖数据库的复杂性:视图把数据库设计的复杂性与用户屏蔽分开。这样就为数据库开发人员提供了一种改变数据库的设计而不影响用户使用的能力。用户只需要查询视图就可以得到所需的数据,而不用编写复杂的查询语句或者执行脚本。简化用户权限的管理:数据库所有者可以把视图的权限授予需要查询的用户,而不必将基表中某些列的查询权限授予用户。3视图创建可以使用3种方法创建视图,一种方法是使用createview语句,另一种方法是使用DBAstudio图形工具,还可以使用创建视图向导来创建。使用createview语句创建视图create[orreplace][force|noforce]view[user.]viewName(column[,column2]...)asquery[withcheckoption[Constraintconstraint]][withreadonly]orreplace表示如果同名的视图存在,则使用新视图替代已有的视图。force强制创建视图,不考虑基表是否存在,是否具有使用基表数据的权限。noforce只有基表存在且具有权限,才可以创建视图。user表示创建视图的用户名。viewName表示将要在数据库上创建的视图名称。column指定视图中的列名。query表示生成视图的select语句。withcheckoption指定强制检查通过视图修改数据的操作。constraint表示指定的约束名称。withreadonly:表示创建的视图只能检索数据,不能修改数据。4视图和表的关系视图和表是两种不同的数据库对象,其中的区别之一是在修改数据方面。修改表中的数据是直接修改数据,而修改视图中的数据是间接修改数据。因为视图本身并不包含数据,修改视图中的数据就是通过视图修改表中的数据。因此,修改视图中的数据有许多特殊的限制。