Oracle-视图
在项目开发中,有时候会用到多表查询,有很多种方法,比如关联,比如视图,但对于查询来说,视图查询是最快的,如果你的数据库的字段信息很多,那查询就得整表查,比如两表查询,我们就可以把要的字段抽取出来,放在视图中,这样查询时就只要查询视图中所要的字段。先看个示例:
创建视图
CREATE OR REPLACE VIEW OMBROMETERDATA_MONITORPOINT
AS
SELECT O.VALUEDAY,O.VALUEHOUR,O.VALUEMONTH,O.VALUEYEAR,O.DTIME ,O.PROJECTID ,M.ID,M.NAME
FROM OMBROMETERDATA O, MONITORPOINT M
WHERE O.POINTNAME=M.NAME;
①.OR REPLACE :若所创建的试图已经存在,ORACLE自动重建该视图;
②.OMBROMETERDATA和MONITORPOINT关联的两个表的表名,OMBROMETERDATA_MONITORPOINT为自定义的视图名称
2.使用视图查询
SELECT * FROM OMBROMETERDATA_MONITORPOINT
一、视图的概念
视图是基于一张表或多张表或另外一个视图的逻辑表。视图不同于表,视图本身不包含任何数据。表是实际独立存在的实体,是用于存储数据的基本结构。而视图只是一种定义,对应一个查询语句。视图的数据都来自于某些表,这些表被称为基表。通过视图来查看表,就像是从不同的角度来观察一个(或多个)表。
视图有如下一些优点:
① 可以提高数据访问的安全性,通过视图往往只可以访问数据库中表的特定部分,限制了用户访问表的全部行和列。
②简化了对数据的查询,隐藏了查询的复杂性。视图的数据来自一个复杂的查询,用户对视图的检索却很简单。
③一个视图可以检索多张表的数据,因此用户通过访问一个视图,可完成对多个表的访问。
④视图是相同数据的不同表示,通过为不同的用户创建同一个表的不同视图,使用户可分别访问同一个表的不同部分。
视图可以在表能够使用的任何地方使用,但在对视图的操作上同表相比有些限制,特别是插入和修改操作。对视图的操作将传递到基表,所以在表上定义的约束条件和触发器在视图上将同样起作用。
二、视图的创建
创建视图需要CREAE VIEW系统权限,视图的创建语法如下:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 视图名[(别名1[,别名2...])]
AS 子查询
[WITH CHECK OPTION [CONSTRAINT 约束名]]
[WITH READ ONLY]
其中:
OR REPLACE 表示替代已经存在的视图。
FORCE表示不管基表是否存在,创建视图。
NOFORCE表示只有基表存在时,才创建视图,是默认值。