oracle视图一例

视图一例:

create or replace view hsy_test_v_line as
select distinct
--线路存在的条件
--1.必须存在于CSM_MID.POB_LINE
--2.线路对应的变电站必须存在于CSM_V_STATION中,所以必须符合CSM_V_STATION的条件
--3.线路的电压等级必须存在于map_t_voltageclass中
       line.lineid,
       line.disc,
       line.code,
       
       line.substationid,
       station.relay_station_name as substationname,
       
       line.voltageclassid,
       volcls.voltageclassname,
       
       line.powersupplyid,
       (
             select distinct disc from csm_mid.pob_powersupply ps where line.powersupplyid2 = ps.powersupplyid                     
       ) powersupplyname2,
       
       decode(line.type,0,'普通线路',1,'专线') type,--线路类型
       
       line.customerid,
       
       line.pointid
       
from csm_mid.pob_line line
left join csm_v_station station on line.substationid = station.relay_station_id
left join map_t_voltageclass volcls on line.voltageclassid = volcls.voltageclassid
order by line.disc;

视图包含行和列,就像一个真实的表。
视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。

1.创建视图
SQL CREATE VIEW 语法:
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition。

2.更新视图
SQL CREATE OR REPLACE VIEW语法:
CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition。

3.撤销视图
SQL DROP VIEW 语法:
DROP VIEW view_name。

视图对数据性能的影响:
可以通过多表查询创建一张视图,在一定程度上简化了查询语句。
视图在一定程度上对数据进行了过滤,保护了数据,对于过滤掉的数据不能进行查看和更新。
但是视图view也会影响数据库的执行效率,因此不建议在系统中过多的使用视图view。
当使用了view视图的时候,可以测试一下,看一看执行的效率怎么样。


你可能感兴趣的:(oracle)