相關(guān)mysql視頻教程推薦:《mysql教程》
視圖:
視圖的定義:從一個(gè)或多個(gè)表(或視圖)導(dǎo)出的表。
視圖與表的不同之處:視圖是一個(gè)虛表,即視圖所對(duì)應(yīng)的數(shù)據(jù)不進(jìn)行實(shí)際存儲(chǔ),數(shù)據(jù)庫(kù)只存儲(chǔ)視圖的定義,對(duì)視圖的數(shù)據(jù)進(jìn)行操作時(shí),系統(tǒng)根據(jù)視圖的定義去操作與視圖相關(guān)聯(lián)的基本表。
上面小段其實(shí)已經(jīng)講出了視圖的本質(zhì)特征。
視圖主要用于系統(tǒng)的安全、查詢和效率,在安全方面,舉個(gè)例子:例如,你只想讓用戶看到某一表的某幾個(gè)字段,有些字段想不讓用戶看見(jiàn),這是用視圖解決會(huì)很好,當(dāng)然在select時(shí)也可以實(shí)現(xiàn)。第在查詢方面,對(duì)于比較復(fù)雜的查詢,可以大大減少頻繁編寫(xiě)sql語(yǔ)句的煩惱。同時(shí),在效率上,數(shù)據(jù)分布在多臺(tái)服務(wù)器上,視圖一定會(huì)帶來(lái)效率上的好處。
臨時(shí)表:
臨時(shí)表與永久表相似,但臨時(shí)表存儲(chǔ)在 tempdb 中,當(dāng)不再使用時(shí)會(huì)自動(dòng)刪除。
臨時(shí)表有兩種類型:本地和全局。它們?cè)诿Q、可見(jiàn)性以及可用性上有區(qū)別。本地臨時(shí)表的名稱以單個(gè)數(shù)字符號(hào) (#) 打頭;它們僅對(duì)當(dāng)前的用戶連接是可見(jiàn)的;當(dāng)用戶從 SQL Server 實(shí)例斷開(kāi)連接時(shí)被刪除。全局臨時(shí)表的名稱以兩個(gè)數(shù)字符號(hào) (##) 打頭,創(chuàng)建后對(duì)任何用戶都是可見(jiàn)的,當(dāng)所有引用該表的用戶從 SQL Server 斷開(kāi)連接時(shí)被刪除。
例如,如果創(chuàng)建了 employees 表,則任何在數(shù)據(jù)庫(kù)中有使用該表的安全權(quán)限的用戶都可以使用該表,除非已將其刪除。如果數(shù)據(jù)庫(kù)會(huì)話創(chuàng)建了本地臨時(shí)表 #employees,則僅會(huì)話可以使用該表,會(huì)話斷開(kāi)連接后就將該表刪除。如果創(chuàng)建了 ##employees 全局臨時(shí)表,則數(shù)據(jù)庫(kù)中的任何用戶均可使用該表。如果該表在您創(chuàng)建后沒(méi)有其他用戶使用,則當(dāng)您斷開(kāi)連接時(shí)該表刪除。如果您創(chuàng)建該表后另一個(gè)用戶在使用該表,則 SQL Server 將在您斷開(kāi)連接并且所有其他會(huì)話不再使用該表時(shí)將其刪除。
臨時(shí)表主要用來(lái)提高效率。
二者區(qū)別:
空間分配:物理空間的分配不一樣,試圖不分配空間, 臨時(shí)表會(huì)分配空間
虛實(shí):視圖是一條預(yù)編譯的SQL語(yǔ)句,并不保存實(shí)際數(shù)據(jù),而臨時(shí)表是保存在tempdb中的實(shí)際的表。即視圖是一個(gè)快照,是一個(gè)虛表,而臨時(shí)表是客觀存在的表類型對(duì)象。它們的結(jié)構(gòu)一個(gè)是表、一個(gè)快照??梢园岩晥D想象成聯(lián)合表的快捷方式。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com