怎么查看oracle視圖 查看oracle視圖的sql語句

如何查詢oracle中的所有表和視圖

--查詢所有表,owner為用戶,dba_objects只能由具有dba角色的用戶去查詢,比如system用戶。

專注于為中小企業提供成都網站設計、成都做網站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業絳縣免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了近千家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。

select * from dba_objects where owner='SYS' and object_type='TABLE';

--查詢所有視圖

select * from dba_objects where object_type='VIEW';

--查看object_type所有對象類型,你可以看看,需要什么就查什么

select distinct object_type from dba_objects order by object_type asc;

oracle 怎么查看已有的物化視圖

pl/sql

developer

選中這個物化視圖,然后點擊查看,就能看到創建這個物化視圖的語句了

pl/sql

windows

中輸入這個物化視圖名稱有,鼠標右鍵同樣可以查看這個物化視圖的創建語句

dbms_metadata.get_ddl

這個函數也可以

oracledba_viewstext怎么看

視圖的定義

視圖(view),也稱虛表, 不占用物理空間,這個也是相對概念,因為視圖本身的定義語句還是要存儲在數據字典里的。視圖只有邏輯定義。每次使用的時候, 只是重新執行SQL.

視圖是從一個或多個實際表中獲得的,這些表的數據存放在數據庫中。那些用于產生視圖的表叫做該視圖的基表。一個視圖也可以從另一個視圖中產生。

視圖的定義存在數據庫中,與此定義相關的數據并沒有再存一份于數據庫中。通過視圖看到的數據存放在基表中。

視圖看上去非常象數據庫的物理表,對它的操作同任何其它的表一樣。當通過視圖修改數據時,實際上是在改變基表中的數據;相反地,基表數據的改變也會自動反映在由基表產生的視圖中。由于邏輯上的原因,有些Oracle視圖可以修改對應的基表,有些則不能(僅僅能查詢)。

還有一種視圖:物化視圖(MATERIALIZED VIEW ),也稱實體化視圖,快照 (8i 以前的說法) ,它是含有數據的,占用存儲空間。 關于物化視圖,具體參考我的blog:

Oracle 物化視圖

javascript:void(0)

二. 視圖的作用

2.1 簡單性。

看到的就是需要的。視圖不僅可以簡化用戶對數據的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為視圖,從而使得用戶不必為以后的操作每次指定全部的條件。

2.2 安全性。

通過視圖用戶只能查詢和修改他們所能見到的數據。數據庫中的其它數據則既看不見也取不到。數據庫授權命令可以使每個用戶對數據庫的檢索限制到特定的數據庫對象上,但不能授權到數據庫特定行和特定的列上。通過Oracle視圖,用戶可以被限制在數據的不同子集上:

使用權限可被限制在基表的行的子集上。

使用權限可被限制在基表的列的子集上。

使用權限可被限制在基表的行和列的子集上。

使用權限可被限制在多個基表的連接所限定的行上。

使用權限可被限制在基表中的數據的統計匯總上。

使用權限可被限制在另一視圖的一個子集上,或是一些視圖和基表合并后的子集上。

視圖的安全性可以防止未授權用戶查看特定的行或列,是用戶只能看到表中特定行的方法如下:

1 在表中增加一個標志用戶名的列;

2 建立Oracle視圖,是用戶只能看到標有自己用戶名的行;

3 把視圖授權給其他用戶。

2.3 邏輯數據獨立性。

視圖可幫助用戶屏蔽真實表結構變化帶來的影響。

視圖可以使應用程序和數據庫表在一定程度上獨立。如果沒有視圖,應用一定是建立在表上的。有了視圖之后,程序可以建立在視圖之上,從而程序與數據庫表被視圖分割開來。視圖可以在以下幾個方面使程序與數據獨立:

1 如果應用建立在數據庫表上,當數據庫表發生變化時,可以在表上建立視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。

2 如果應用建立在數據庫表上,當應用發生變化時,可以在表上建立視圖,通過視圖屏蔽應用的變化,從而使數據庫表不動。

3 如果應用建立在視圖上,當數據庫表發生變化時,可以在表上修改視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。

4 如果應用建立在視圖上,當應用發生變化時,可以在表上修改視圖,通過視圖屏蔽應用的變化,從而數據庫可以不動。

三. 視圖的基本語法:

CREATE[OR REPLACE][FORCE][NOFORCE]VIEW view_name

[(column_name)[,….n]]

AS

Select_statement

[WITH CHECK OPTION[CONSTRAINT constraint_name]]

[WITH READ ONLY]

說明:

view_name : ?視圖的名字

column_name: 視圖中的列名

在下列情況下 , 必須指定視圖列的名稱

* 由算術表達式 , 系統內置函數或者常量得到的列

* 共享同一個表名連接得到的列

* 希望視圖中的列名與表中的列名不同的時候

REPLACE: ?如果創建視圖時, 已經存在此視圖, 則重新創建此視圖, 相當于覆蓋

FORCE: ?強制創建視圖, 無論的視圖所依賴的基表否存在或是否有權限創建

NOFORCE: ?只有基表存在且具有創建視圖權限時, 才可以創建視圖

WITH CHECK OPTION ?指出在視圖上所進行的修改都要符合select_statement 所指定的限制條件

WITH READ ONLY ?只允許查看視圖

視圖的定義原則:

1. 視圖的查詢可以使用復雜的 SELECT 語法,包括連接 / 分組查詢和子查詢;

2. 在沒有 WITH CHECK OPTION 和 READ ONLY的情況下,查詢中不能使用

ORDER BY子句;

3. 如果沒有為 CHECK OPTION 約束命名,系統會自動為之命名,形式為 SYS_Cn;

4. OR REPLACE 選項可以不刪除原視圖便可更改其定義并重建,或重新授予對象

權限。

四. 視圖操作

視圖分為簡單視圖( 基于單個基表,且不包含函數和數據分組操作 ) 和復雜視圖( 基于多個基表或視圖).

簡單視圖可以通過視圖修改數據. 這些修改包括插入數據. 更新數據和刪除數據. 但是對于復雜視圖來說, 通過視圖修改數據必須滿足一定的規則.

在視圖定義中沒有設定READ ONLY 的前提下, 如果視圖包含了下面的內容, 那么不能通過視圖刪除表中的數據:

* 分組函數, 如SUM,AVG,MIN,MAX 等

*? GROUP BY 子句

* 包含了表達式

* ROWNUM 偽列

插入數據時, 除了滿足上面的條件外, 還需要保證那些沒有包含在視圖定義中的基表的列必須允許空值. 如果在視圖定義中還包含了WITH CHECK OPTION 子句, 那么對視圖的修改除了前面的那些原則外, 還必須滿足指定的約束條件. 個人認為,視圖利于查詢,不利于修改.

1. 查詢視圖: 可依賴于多個基表.

SELECT ?* FROM view_name; /* 類似于查詢表數據*/

2. 更新視圖的前提:

沒有使用連接函數, 集合運算和組函數. 創建視圖的select 語句中沒有集合函數且沒有GROUP BY,ONNECT BY ,START WITH 子句及DISTINCT 關鍵字. 創建視圖的SELECT 語句中不包含從基表列通過計算所得的列. 創建視圖沒有包含只讀屬性.

3. 插入數據

INSERT ?INTO? view_name VALUES();

4. 修改數據:

UPDATE? view_name SET …

若一個視圖依賴于多個基本表, 則一次修改該視圖只能修改一個基本表的數據.

5. 刪除數據:

Delete from view_name where …

同樣, 當視圖依賴多個基表時, 不能使用此語句來刪除基表中的數據. 只能刪除依賴一個基表的數據.

6. 修改視圖定義:

修改視圖的好處在于, 所有相關的權限都依然存在. 語法同創建視圖相同.

7. 刪除視圖:

DROP VIEW view_name;

只有視圖所有者和具備DROP VIEW 權限的用戶可以刪除視圖。刪除視圖的定義不影響基表中的數據。視圖被刪除后,基于被刪除視圖的其他視圖或應用將無效

Oracle查詢表、視圖、序列等信息查詢

這幾天做性能優化 網上找了些資料

有時候需要導出某用戶下的所有table view sequence trigger等信息 下面的SQL可以將這些信息select出來

select * from user_tables;

select * from user_views;

select * from user_sequences;

select * from user_triggers;

想查找表的數據條數

試試這個

select t table_name t num_rows from user_tables t

如果沒有值 那就創建個函數

代碼

create or replace function count_rows(table_name in varchar

owner in varchar default null)

return number

authid current_user

IS

num_rows number;

stmt varchar ( );

begin

if owner is null then

stmt := select count(*) from ||table_name|| ;

else

stmt := select count(*) from ||owner|| ||table_name|| ;

end if;

execute immediate stmt into num_rows;

return num_rows;

end

再執行查詢

lishixinzhi/Article/program/Oracle/201311/18185

oracle 如何查找視圖名稱

用Oracle

Enterprise

Manager

Console登錄進去,選擇你要查找視圖的數據庫,選擇方案----選擇和你連接Oracle用戶相同的方案,第一個為表,第二個為索引,第三個就是視圖,在這里可以查看,也可以修改。

網站名稱:怎么查看oracle視圖 查看oracle視圖的sql語句
當前鏈接:http://m.kartarina.com/article24/hjipje.html

成都網站建設公司_創新互聯,為您提供品牌網站設計關鍵詞優化域名注冊微信小程序網站設計定制開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營
主站蜘蛛池模板: 无码精品久久一区二区三区 | 国产精品一级毛片无码视频| 国产免费午夜a无码v视频| 老司机无码精品A| 亚洲av无码国产精品夜色午夜| 一本大道在线无码一区| 中文字幕无码免费久久9一区9| 国产乱妇无码大片在线观看| 亚洲色中文字幕无码AV| 亚洲 无码 在线 专区| 无码人妻精品一区二区三区久久久| 国产成人无码18禁午夜福利p| 精品无码人妻一区二区三区18| 久久久久久久亚洲Av无码| 最新高清无码专区| 亚洲免费无码在线| 无码无套少妇毛多69XXX| 久久亚洲AV成人无码软件| 亚洲一区爱区精品无码| 国模吧无码一区二区三区| 亚洲AV无码乱码在线观看| 免费无码又爽又刺激聊天APP| 91精品久久久久久无码| 久久精品亚洲中文字幕无码网站| 成人无码WWW免费视频| 中文字幕乱码人妻无码久久 | 精品无码一区二区三区水蜜桃| 久久亚洲AV成人无码国产| 人妻aⅴ无码一区二区三区| 亚洲AV无码乱码在线观看裸奔| 国产精品视频一区二区三区无码 | 亚洲免费日韩无码系列| 无码人妻精一区二区三区| 少妇特殊按摩高潮惨叫无码| 亚洲av无码一区二区三区天堂古代 | 久久影院午夜理论片无码| 亚洲av麻豆aⅴ无码电影| 亚洲国产成人精品无码久久久久久综合| 亚洲av无码专区国产不乱码| 性色av无码不卡中文字幕| 精品无码中文视频在线观看|