oracle的创建视图,oracle 创建视图
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
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/30272993/viewspace-1693196/,如需轉載,請注明出處,否則將追究法律責任。
總結
以上是生活随笔為你收集整理的oracle的创建视图,oracle 创建视图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FreeRTOS 教程指南 学习笔记 第
- 下一篇: Linux vi 查找和替换字符串