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视图的时候,可以测试一下,看一看执行的效率怎么样。
    
  

你可能感兴趣的:(JOIN,oracle,sql,数据库,测试,table)