1,视图观念:视图是一个逻辑布局,自己不包括任何数据,是一个可定名的select语句。
?? 透过视图可以看到底层数据,可是视图和数据是彼此独立的。
2,建设视图必要有DBA权限。
3,语法:CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view[(alias[,alias]..)]
?? AS subquery;
4,create or replace 暗示若视图存在则替代掉;
如:
SQL> create view testview3
? 2? as?
? 3? select * from test3;
视图已建设。
?
SQL> create view testview3
? 2? as?
? 3? select * from test3;
create view testview3
??????????? *
第 1 行呈现错误:
ORA-00955: 名称已由现有工具行使
修改视图:
SQL> create or replace view testview3
? 2? as
? 3? select * from test3;
视图已建设。
5,force 暗示若表不存在则逼迫建设视图;
如:SQL> create view tt
? 2? as
? 3? select * from tt;
create view tt
??????????? *
第 1 行呈现错误:
ORA-01731: 呈现轮回的视图界说
SQL> create force view tt
? 2? as
? 3? select * from tt;
告诫: 建设的视图带有编译错误。
6,查察视图布局:
SQL> desc testview3;
?名称????????????????????????????????????? 是否为空? 范例
?----------------------------------------- -------- ----------------------------
?ID??????????????????????????????????????? NOT NULL NUMBER(38)
?LNAME????????????????????????????????????????????? VARCHAR2(20)
?FNAME????????????????????????????????????????????? VARCHAR2(20)
7,在行使聚合函数建设视图时,需拟定别名;
SQL> create view testview4
? 2? as?
? 3? select id,sum(id) from test3
? 4? group by id;
select id,sum(id) from test3
????????? *
第 3 行呈现错误:
ORA-00998: 必需行使列别名定名此表达式
SQL> create view testview4
? 2? as
? 3? select id,sum(id) test3_id from test3
? 4? group by id;
视图已建设。
?
8,更新视图:
SQL> select * from testview5;
? TEST5_ID TEST5_NAME?????????? TEST5_FNAME
---------- -------------------- --------------------
???????? 3 kong???????????????? sales
???????? 2 hh
SQL> update testview5 set test5_name=‘kong_gai‘
? 2? where test5_id=3;
已更新 1 行。
SQL> select * from testview5;
? TEST5_ID TEST5_NAME?????????? TEST5_FNAME
---------- -------------------- --------------------
???????? 3 kong_gai???????????? sales
???????? 2 hh
?
原文链接
https://www.csdn.net/gather_2d/MtTaQgwsOTAxMC1ibG9n.html
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|