真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么查看oracle視圖 查看oracle視圖的sql語(yǔ)句

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

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

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)絳縣免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

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

--查詢所有視圖

select * from dba_objects where object_type='VIEW';

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

select distinct object_type from dba_objects order by object_type asc;

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

pl/sql

developer

選中這個(gè)物化視圖,然后點(diǎn)擊查看,就能看到創(chuàng)建這個(gè)物化視圖的語(yǔ)句了

pl/sql

windows

中輸入這個(gè)物化視圖名稱有,鼠標(biāo)右鍵同樣可以查看這個(gè)物化視圖的創(chuàng)建語(yǔ)句

dbms_metadata.get_ddl

這個(gè)函數(shù)也可以

oracledba_viewstext怎么看

視圖的定義

視圖(view),也稱虛表, 不占用物理空間,這個(gè)也是相對(duì)概念,因?yàn)橐晥D本身的定義語(yǔ)句還是要存儲(chǔ)在數(shù)據(jù)字典里的。視圖只有邏輯定義。每次使用的時(shí)候, 只是重新執(zhí)行SQL.

視圖是從一個(gè)或多個(gè)實(shí)際表中獲得的,這些表的數(shù)據(jù)存放在數(shù)據(jù)庫(kù)中。那些用于產(chǎn)生視圖的表叫做該視圖的基表。一個(gè)視圖也可以從另一個(gè)視圖中產(chǎn)生。

視圖的定義存在數(shù)據(jù)庫(kù)中,與此定義相關(guān)的數(shù)據(jù)并沒(méi)有再存一份于數(shù)據(jù)庫(kù)中。通過(guò)視圖看到的數(shù)據(jù)存放在基表中。

視圖看上去非常象數(shù)據(jù)庫(kù)的物理表,對(duì)它的操作同任何其它的表一樣。當(dāng)通過(guò)視圖修改數(shù)據(jù)時(shí),實(shí)際上是在改變基表中的數(shù)據(jù);相反地,基表數(shù)據(jù)的改變也會(huì)自動(dòng)反映在由基表產(chǎn)生的視圖中。由于邏輯上的原因,有些Oracle視圖可以修改對(duì)應(yīng)的基表,有些則不能(僅僅能查詢)。

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

Oracle 物化視圖

javascript:void(0)

二. 視圖的作用

2.1 簡(jiǎn)單性。

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

2.2 安全性。

通過(guò)視圖用戶只能查詢和修改他們所能見(jiàn)到的數(shù)據(jù)。數(shù)據(jù)庫(kù)中的其它數(shù)據(jù)則既看不見(jiàn)也取不到。數(shù)據(jù)庫(kù)授權(quán)命令可以使每個(gè)用戶對(duì)數(shù)據(jù)庫(kù)的檢索限制到特定的數(shù)據(jù)庫(kù)對(duì)象上,但不能授權(quán)到數(shù)據(jù)庫(kù)特定行和特定的列上。通過(guò)Oracle視圖,用戶可以被限制在數(shù)據(jù)的不同子集上:

使用權(quán)限可被限制在基表的行的子集上。

使用權(quán)限可被限制在基表的列的子集上。

使用權(quán)限可被限制在基表的行和列的子集上。

使用權(quán)限可被限制在多個(gè)基表的連接所限定的行上。

使用權(quán)限可被限制在基表中的數(shù)據(jù)的統(tǒng)計(jì)匯總上。

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

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

1 在表中增加一個(gè)標(biāo)志用戶名的列;

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

3 把視圖授權(quán)給其他用戶。

2.3 邏輯數(shù)據(jù)獨(dú)立性。

視圖可幫助用戶屏蔽真實(shí)表結(jié)構(gòu)變化帶來(lái)的影響。

視圖可以使應(yīng)用程序和數(shù)據(jù)庫(kù)表在一定程度上獨(dú)立。如果沒(méi)有視圖,應(yīng)用一定是建立在表上的。有了視圖之后,程序可以建立在視圖之上,從而程序與數(shù)據(jù)庫(kù)表被視圖分割開(kāi)來(lái)。視圖可以在以下幾個(gè)方面使程序與數(shù)據(jù)獨(dú)立:

1 如果應(yīng)用建立在數(shù)據(jù)庫(kù)表上,當(dāng)數(shù)據(jù)庫(kù)表發(fā)生變化時(shí),可以在表上建立視圖,通過(guò)視圖屏蔽表的變化,從而應(yīng)用程序可以不動(dòng)。

2 如果應(yīng)用建立在數(shù)據(jù)庫(kù)表上,當(dāng)應(yīng)用發(fā)生變化時(shí),可以在表上建立視圖,通過(guò)視圖屏蔽應(yīng)用的變化,從而使數(shù)據(jù)庫(kù)表不動(dòng)。

3 如果應(yīng)用建立在視圖上,當(dāng)數(shù)據(jù)庫(kù)表發(fā)生變化時(shí),可以在表上修改視圖,通過(guò)視圖屏蔽表的變化,從而應(yīng)用程序可以不動(dòng)。

4 如果應(yīng)用建立在視圖上,當(dāng)應(yīng)用發(fā)生變化時(shí),可以在表上修改視圖,通過(guò)視圖屏蔽應(yīng)用的變化,從而數(shù)據(jù)庫(kù)可以不動(dòng)。

三. 視圖的基本語(yǔ)法:

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

[(column_name)[,….n]]

AS

Select_statement

[WITH CHECK OPTION[CONSTRAINT constraint_name]]

[WITH READ ONLY]

說(shuō)明:

view_name : ?視圖的名字

column_name: 視圖中的列名

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

* 由算術(shù)表達(dá)式 , 系統(tǒng)內(nèi)置函數(shù)或者常量得到的列

* 共享同一個(gè)表名連接得到的列

* 希望視圖中的列名與表中的列名不同的時(shí)候

REPLACE: ?如果創(chuàng)建視圖時(shí), 已經(jīng)存在此視圖, 則重新創(chuàng)建此視圖, 相當(dāng)于覆蓋

FORCE: ?強(qiáng)制創(chuàng)建視圖, 無(wú)論的視圖所依賴的基表否存在或是否有權(quán)限創(chuàng)建

NOFORCE: ?只有基表存在且具有創(chuàng)建視圖權(quán)限時(shí), 才可以創(chuàng)建視圖

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

WITH READ ONLY ?只允許查看視圖

視圖的定義原則:

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

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

ORDER BY子句;

3. 如果沒(méi)有為 CHECK OPTION 約束命名,系統(tǒng)會(huì)自動(dòng)為之命名,形式為 SYS_Cn;

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

權(quán)限。

四. 視圖操作

視圖分為簡(jiǎn)單視圖( 基于單個(gè)基表,且不包含函數(shù)和數(shù)據(jù)分組操作 ) 和復(fù)雜視圖( 基于多個(gè)基表或視圖).

簡(jiǎn)單視圖可以通過(guò)視圖修改數(shù)據(jù). 這些修改包括插入數(shù)據(jù). 更新數(shù)據(jù)和刪除數(shù)據(jù). 但是對(duì)于復(fù)雜視圖來(lái)說(shuō), 通過(guò)視圖修改數(shù)據(jù)必須滿足一定的規(guī)則.

在視圖定義中沒(méi)有設(shè)定READ ONLY 的前提下, 如果視圖包含了下面的內(nèi)容, 那么不能通過(guò)視圖刪除表中的數(shù)據(jù):

* 分組函數(shù), 如SUM,AVG,MIN,MAX 等

*? GROUP BY 子句

* 包含了表達(dá)式

* ROWNUM 偽列

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

1. 查詢視圖: 可依賴于多個(gè)基表.

SELECT ?* FROM view_name; /* 類似于查詢表數(shù)據(jù)*/

2. 更新視圖的前提:

沒(méi)有使用連接函數(shù), 集合運(yùn)算和組函數(shù). 創(chuàng)建視圖的select 語(yǔ)句中沒(méi)有集合函數(shù)且沒(méi)有GROUP BY,ONNECT BY ,START WITH 子句及DISTINCT 關(guān)鍵字. 創(chuàng)建視圖的SELECT 語(yǔ)句中不包含從基表列通過(guò)計(jì)算所得的列. 創(chuàng)建視圖沒(méi)有包含只讀屬性.

3. 插入數(shù)據(jù)

INSERT ?INTO? view_name VALUES();

4. 修改數(shù)據(jù):

UPDATE? view_name SET …

若一個(gè)視圖依賴于多個(gè)基本表, 則一次修改該視圖只能修改一個(gè)基本表的數(shù)據(jù).

5. 刪除數(shù)據(jù):

Delete from view_name where …

同樣, 當(dāng)視圖依賴多個(gè)基表時(shí), 不能使用此語(yǔ)句來(lái)刪除基表中的數(shù)據(jù). 只能刪除依賴一個(gè)基表的數(shù)據(jù).

6. 修改視圖定義:

修改視圖的好處在于, 所有相關(guān)的權(quán)限都依然存在. 語(yǔ)法同創(chuàng)建視圖相同.

7. 刪除視圖:

DROP VIEW view_name;

只有視圖所有者和具備DROP VIEW 權(quán)限的用戶可以刪除視圖。刪除視圖的定義不影響基表中的數(shù)據(jù)。視圖被刪除后,基于被刪除視圖的其他視圖或應(yīng)用將無(wú)效

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

這幾天做性能優(yōu)化 網(wǎng)上找了些資料

有時(shí)候需要導(dǎo)出某用戶下的所有table view sequence trigger等信息 下面的SQL可以將這些信息select出來(lái)

select * from user_tables;

select * from user_views;

select * from user_sequences;

select * from user_triggers;

想查找表的數(shù)據(jù)條數(shù)

試試這個(gè)

select t table_name t num_rows from user_tables t

如果沒(méi)有值 那就創(chuàng)建個(gè)函數(shù)

代碼

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

再執(zhí)行查詢

lishixinzhi/Article/program/Oracle/201311/18185

oracle 如何查找視圖名稱

用Oracle

Enterprise

Manager

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


網(wǎng)站標(biāo)題:怎么查看oracle視圖 查看oracle視圖的sql語(yǔ)句
分享路徑:http://weahome.cn/article/hjipje.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部