oracle系統(tǒng)視圖與普通視圖的區(qū)別是它們是系統(tǒng)內(nèi)置的,它們?cè)趦?nèi)存中并沒(méi)有特殊的結(jié)構(gòu)存放。
創(chuàng)新互聯(lián)是一家專(zhuān)注于成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)和服務(wù)器主機(jī)托管的網(wǎng)絡(luò)公司,有著豐富的建站經(jīng)驗(yàn)和案例。
視圖的定義存在sga中的shared pool中的dictionary cache中,視圖的數(shù)據(jù)來(lái)自于基表,放在sga中的buffer cache中。
如果覺(jué)得好請(qǐng)采納
這個(gè)他是一班是有一個(gè)專(zhuān)門(mén)的組成那個(gè)功能的,你只需要先把你儲(chǔ)存的數(shù)據(jù)儲(chǔ)存進(jìn)去就行了
一 視圖概念
視圖是原始數(shù)據(jù)庫(kù)數(shù)據(jù)的一種變換 是查看表中數(shù)據(jù)的另外一種方式 可以將視圖看成是一個(gè)移動(dòng)的窗口 通過(guò)它可以看到感興趣的數(shù)據(jù)
視圖是從一個(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)生的視圖中 由于邏輯上的原因 有些視圖可以修改對(duì)應(yīng)的基表 有些則不能(僅僅能查詢(xún))
二 視圖的作用
* 簡(jiǎn)單性 看到的就是需要的 視圖不僅可以簡(jiǎn)化用戶(hù)對(duì)數(shù)據(jù)的理解 也可以簡(jiǎn)化他們的操作 那些被經(jīng)常使用的查詢(xún)可以被定義為視圖 從而使得用戶(hù)不必為以后的操作每次指定全部的條件
* 安全性 通過(guò)視圖用戶(hù)只能查詢(xún)和修改他們所能見(jiàn)到的數(shù)據(jù) 數(shù)據(jù)庫(kù)中的其它數(shù)據(jù)則既看不見(jiàn)也取不到 數(shù)據(jù)庫(kù)授權(quán)命令可以使每個(gè)用戶(hù)對(duì)數(shù)據(jù)庫(kù)的檢索限制到特定的數(shù)據(jù)庫(kù)對(duì)象上 但不能授權(quán)到數(shù)據(jù)庫(kù)特定行和特定的列上 通過(guò)視圖 用戶(hù)可以被限制在數(shù)據(jù)的不同子集上
使用權(quán)限可被限制在基表的行的子集上
使用權(quán)限可被限制在基表的列的子集上 ?
使用權(quán)限可被限制在基表的行和列的子集上 ?
使用權(quán)限可被限制在多個(gè)基表的連接所限定的行上 ?
使用權(quán)限可被限制在基表中的數(shù)據(jù)的統(tǒng)計(jì)匯總上
使用權(quán)限可被限制在另一視圖的一個(gè)子集上 或是一些視圖和基表合并后的子集上
* 邏輯數(shù)據(jù)獨(dú)立性 視圖可幫助用戶(hù)屏蔽真實(shí)表結(jié)構(gòu)變化帶來(lái)的影響
三 視圖的安全性
視圖的安全性可以防止未授權(quán)用戶(hù)查看特定的行或列 是用戶(hù)只能看到表中特定行的方法如下
在表中增加一個(gè)標(biāo)志用戶(hù)名的列
建立視圖 是用戶(hù)只能看到標(biāo)有自己用戶(hù)名的行
把視圖授權(quán)給其他用戶(hù)
四 邏輯數(shù)據(jù)獨(dú)立性
視圖可以使應(yīng)用程序和數(shù)據(jù)庫(kù)表在一定程度上獨(dú)立 如果沒(méi)有視圖 應(yīng)用一定是建立在表上的 有了視圖之后 程序可以建立在視圖之上 從而程序與數(shù)據(jù)庫(kù)表被視圖分割開(kāi)來(lái) 視圖可以在以下幾個(gè)方面使程序與數(shù)據(jù)獨(dú)立
如果應(yīng)用建立在數(shù)據(jù)庫(kù)表上 當(dāng)數(shù)據(jù)庫(kù)表發(fā)生變化時(shí) 可以在表上建立視圖 通過(guò)視圖屏蔽表的變化 從而應(yīng)用程序可以不動(dòng)
如果應(yīng)用建立在數(shù)據(jù)庫(kù)表上 當(dāng)應(yīng)用發(fā)生變化時(shí) 可以在表上建立視圖 通過(guò)視圖屏蔽應(yīng)用的變化 從而使數(shù)據(jù)庫(kù)表不動(dòng)
如果應(yīng)用建立在視圖上 當(dāng)數(shù)據(jù)庫(kù)表發(fā)生變化時(shí) 可以在表上修改視圖 通過(guò)視圖屏蔽表的變化 從而應(yīng)用程序可以不動(dòng)
lishixinzhi/Article/program/Oracle/201311/16872
create or replace view 結(jié)果視圖表名 as
select a.編號(hào)1,a.編號(hào)2,
(select count(*) from 表1 a group by a.編號(hào)1 ) as 與編號(hào)2對(duì)應(yīng)次數(shù), b.編號(hào)1,b.編號(hào)2,
(select count(*) from 表1 a,表2 b where b.編號(hào)1=a.編號(hào)1 group by b.編號(hào)1 ) as 與編號(hào)3對(duì)應(yīng)次數(shù),
c.編號(hào)1,c.編號(hào)2,
(select count(*) from 表1 a,表3 c where c.編號(hào)1=a.編號(hào)1 group by c.編號(hào)1 ) as 與編號(hào)4對(duì)應(yīng)次數(shù),
……
from 表1 a
left join 表2 b on b.編號(hào)1=a.編號(hào)1
left join 表3 c on c.編號(hào)1=a.編號(hào)1
……
group by a.編號(hào)1 order by a.編號(hào)1 asc
使用exp命令,導(dǎo)出用戶(hù)名下的所有對(duì)象。再使用imp命令導(dǎo)入到另外一個(gè)數(shù)據(jù)庫(kù)中。