sql視圖的作用
2023-05-25 17:17:55 閱讀(205)
sqlserver建立視圖有什么作用?
視圖的作用: 1 視圖可以簡化用戶的操作 試圖機(jī)制使用戶可以將注意力集中在所關(guān)心的數(shù)據(jù)上 2 視圖使用戶能以多種角度看待同一數(shù)據(jù) 視圖使用戶能以多種角度看待同一數(shù)據(jù),當(dāng)許多不同種類的用戶共享同一數(shù)據(jù)庫時(shí),這種靈活性很重要 3視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨(dú)立性 4 視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù) 有了視圖機(jī)制,就可以在設(shè)計(jì)數(shù)據(jù)可應(yīng)用系統(tǒng)時(shí),對不同的用戶定義不同的視圖,使機(jī)密數(shù)據(jù)不出現(xiàn)在不應(yīng)看到這些數(shù)據(jù)的用戶視圖上 5適當(dāng)?shù)睦靡晥D可以更清晰的表達(dá)查詢
oracle視圖有什么用呢?
視圖(view)定義: 視圖是一張?zhí)摫恚徽加梦锢砜臻g(指的是圖中數(shù)據(jù)不占用,視圖本身定義語句還是存在硬盤中) 視圖是從一個(gè)或多個(gè)實(shí)際表中獲得的,這些表的數(shù)據(jù)存放在數(shù)據(jù)庫中。那些用于產(chǎn)生視圖的表叫做該視圖的基表。一個(gè)視圖也可以從另一個(gè)視圖中產(chǎn)生。 視圖的定義存在數(shù)據(jù)庫中,與此定義相關(guān)的數(shù)據(jù)并沒有再存一份于數(shù)據(jù)庫中。通過視圖看到的數(shù)據(jù)存放在基表中。 視圖看上去非常像數(shù)據(jù)庫的物理表,對它的操作同任何其他的表(增、刪、改、查)。當(dāng)通過修改視圖修改數(shù)據(jù)時(shí),實(shí)際是在改變基表中的數(shù)據(jù);相反的,基表中數(shù)據(jù)的改變也會(huì)自動(dòng)反應(yīng)到由基表產(chǎn)生的視圖中。由于邏輯上的原因,有些Oracle視圖可以修改對應(yīng)的基表,有些則不能(僅能查詢)。 視圖的作用:將一些查詢復(fù)雜的SQL語句變?yōu)橐晥D,便于查詢。 視圖的創(chuàng)建:語法:在CREATE VIEW語句后加入子查詢。 舉個(gè)栗子--> 查詢視圖時(shí),不需要再寫完全的查詢語句,只需要簡單的寫上從視圖中查詢的語句就可以了 視圖也可以從視圖中產(chǎn)生: 修改視圖的數(shù)據(jù),就是修改基表的數(shù)據(jù): 視圖的刪除:當(dāng)視圖不在需要時(shí),用“drop viow”撤銷,刪掉視圖不會(huì)導(dǎo)致數(shù)據(jù)丟失(不會(huì)影響基表的數(shù)據(jù)),因?yàn)橐晥D是基于數(shù)據(jù)庫的表之上的一個(gè)查詢定義(虛表) 視圖的優(yōu)點(diǎn):可以使某些重復(fù)出現(xiàn)SQL語句變得更為簡單 視圖的缺點(diǎn):1.如果修改基表的結(jié)構(gòu),視圖失效 2.增加數(shù)據(jù)庫的維護(hù)成本 3.視圖會(huì)被覆蓋掉 4.一般情況下,不要對視圖進(jìn)行DML操作
sql server中的視圖有什么用?和存儲(chǔ)過程有什么區(qū)別?他的好處是什么?
視圖是把現(xiàn)在有數(shù)據(jù)組合成新的形式展示出來,相當(dāng)于一張?zhí)摂M的表,運(yùn)行時(shí)用來呈現(xiàn)數(shù)據(jù)。 視圖和存儲(chǔ)過程的區(qū)別只能查。。。增刪改是不行的 好處是 不用存儲(chǔ)在數(shù)據(jù)庫里。。
每個(gè)查詢都有三種視圖其中用來顯示查詢結(jié)果的視圖是?
有五種視圖 1.數(shù)據(jù)表視圖:以表格的形式顯示查詢中的數(shù)據(jù),可用于編輯字段、添加和刪除數(shù)據(jù)、查找數(shù)據(jù)等。 2.數(shù)據(jù)透視圖視圖:對查詢中的數(shù)據(jù)、數(shù)據(jù)匯總以圖形化的方式顯示出來。 3.數(shù)據(jù)透視表視圖:動(dòng)態(tài)的更改表格的布局、重構(gòu)數(shù)據(jù)的組織方式,從而方便的用不同的方法分析數(shù)據(jù)。 4.設(shè)計(jì)視圖:用于創(chuàng)建和修改查詢,添加顯示字段、設(shè)置數(shù)據(jù)來源和查詢條件等。 5.SQL視圖:用于輸入和顯示SQL語句。 查詢的數(shù)據(jù)源可以是表和查詢
SQL的視圖機(jī)制有哪些優(yōu)點(diǎn)?
在程序設(shè)計(jì)的時(shí)候必須先了解視圖的優(yōu)缺點(diǎn),這樣可以揚(yáng)長避短,視圖具有如下的一些優(yōu)點(diǎn): ● 簡單性。 視圖不僅可以簡化用戶對數(shù)據(jù)的理解,也可以簡化他們的操作。那些被經(jīng)常使用的查詢可以被定義為視圖,從而使用戶不必為以后的操作每次都指定全部的條件。 ● 安全性。 通過視圖用戶只能查詢和修改他們所能見到的數(shù)據(jù)。數(shù)據(jù)庫中的其他數(shù)據(jù)則既看不見也取不到。 數(shù)據(jù)庫授權(quán)命令可以使每個(gè)用戶對數(shù)據(jù)庫的檢索限制到特定的數(shù)據(jù)庫對象上,但不能授權(quán)到數(shù)據(jù)庫特定行和特定的列上。 通過視圖,用戶可以被限制在數(shù)據(jù)的不同子集上。 ● 邏輯數(shù)據(jù)獨(dú)立性。 視圖可以使應(yīng)用程序和數(shù)據(jù)庫表在一定程度上獨(dú)立。如果沒有視圖,應(yīng)用一定是建立在表上的。有了視圖之后,程序可以建立在視圖之上,從而程序與數(shù)據(jù)庫表被視圖分割開來。
SQL中使用視圖的優(yōu)點(diǎn)和缺點(diǎn)是什么?
一,視圖著重于特定數(shù)據(jù)。視圖可以讓用戶或者程序開發(fā)人員只看到他們所需要的數(shù)據(jù),而不需要把表中的所有信息與字段暴露出來,這樣增強(qiáng)了數(shù)據(jù)的安全性。 二,簡化數(shù)據(jù)的操作,易維護(hù)。我們可以將經(jīng)常用到的多表聯(lián)合查詢出來的數(shù)據(jù),或特定的結(jié)果集定義為視圖,這樣就起到了模塊化數(shù)據(jù)的作用。我們在使用這些數(shù)據(jù)時(shí)直接查詢該視圖就可以,而不用到處寫長長的SQL語句,這樣也起到易維護(hù)的作用。 三,視圖可以限定查詢數(shù)據(jù)。比如:對于不同的用戶,我們只提供部分?jǐn)?shù)據(jù)給他。這樣,我們就可以在視圖中限定結(jié)果集,然后返回該視圖給他。這樣,無論用戶怎么對視圖定義查詢條件,他也不能查詢出我們不想提供給他的數(shù)據(jù)。雖然視圖可以給我們帶來種種便利,但不意味著我們就可以濫用它。因?yàn)橐晥D其實(shí)就是一段SQL語句,所以它的結(jié)果都是每次調(diào)用時(shí)動(dòng)態(tài)生成的。如果不合理的定義視圖,必然帶來性能上的損耗。下面是我們在創(chuàng)建視圖應(yīng)該要注意的幾點(diǎn):一,操作視圖會(huì)比直接操作基礎(chǔ)表要慢,所以我們盡量避免在大型表上創(chuàng)建視圖。二,盡量不要?jiǎng)?chuàng)建嵌套視圖,就是在視圖中使用視圖。這樣在查詢時(shí),會(huì)多次重復(fù)訪問基礎(chǔ)表,帶來性能損耗。三,盡量在視圖只返回所需的信息,盡量不要在視圖使用不需要訪問的表。
SQL中使用視圖的優(yōu)點(diǎn)和缺點(diǎn)是什么?
什么時(shí)候使用視圖呢? 應(yīng)用場景1:保密工作,比如有一個(gè)員工工資表,如果你只希望財(cái)務(wù)看到員工工資這個(gè)字段,而其他人不能看到工資字段,那就用一個(gè)視圖,把工資這個(gè)敏感字段過濾掉 應(yīng)用場景2:有一個(gè)查詢語句非常復(fù)雜,大概有100行這么多,有時(shí)還想把這個(gè)巨大無比的select語句和其他表關(guān)聯(lián)起來得到結(jié)果,寫太多很麻煩,可以用一個(gè)視圖來代替這100行的select語句,充當(dāng)一個(gè)變量角色 應(yīng)用場景1:你在短期內(nèi)有很多DML操作,比如京東淘寶亞馬遜的購物車表,把東西放購物車(insert),變更數(shù)量(update),刪除商品(delete),一旦結(jié)算金錢后,這些數(shù)據(jù)就要清掉,這時(shí)需要用臨時(shí)表應(yīng)用場景2:在導(dǎo)出數(shù)據(jù)時(shí),你可能不想導(dǎo)完整的數(shù)據(jù)庫,或者表,你可能只想要導(dǎo)出符合某些條件的數(shù)據(jù),那么你可以創(chuàng)建臨時(shí)表,把select語句插入到臨時(shí)表,接著導(dǎo)出這個(gè)臨時(shí)表,導(dǎo)完以后通過結(jié)束session或者事務(wù)的方式,讓這些沒用的數(shù)據(jù)自動(dòng)清理掉應(yīng)用場景3:你在寫存儲(chǔ)過程時(shí),有很多的連接,比如你需要連接A,B,C,D,E,F,G,H那么多張表,才能得到你的結(jié)果表,同時(shí)做連接的消耗太大,你可以先A,B,C連接的結(jié)果,放在臨時(shí)表,接著再把這張臨時(shí)表,跟D,E,F連接,作為新的結(jié)果放在臨時(shí)表,接著再把臨時(shí)表與G,H連接,最后得到臨時(shí)表數(shù)據(jù),一次插入到結(jié)果表(永久表)。答案:使用臨時(shí)表,不用視圖
未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明出處