導航:首頁 > 源碼編譯 > 視圖就是預編譯的sql

視圖就是預編譯的sql

發布時間:2022-09-24 11:10:04

⑴ 資料庫中的視圖又什麼用

SQL視圖

視圖可以被看成是虛擬表或存儲查詢。可通過視圖訪問的數據不作為獨特的對象存儲在資料庫內。資料庫內存儲的是 SELECT 語句。SELECT 語句的結果集構成視圖所返回的虛擬表。用戶可以用引用表時所使用的方法,在 Transact-SQL 語句中通過引用視圖名稱來使用虛擬表。使用視圖可以實現下列任一或所有功能:

將用戶限定在表中的特定行上。
例如,只允許雇員看見工作跟蹤表內記錄其工作的行。

將用戶限定在特定列上。
例如,對於那些不負責處理工資單的雇員,只允許他們看見雇員表中的姓名列、辦公室列、工作電話列和部門列,而不能看見任何包含工資信息或個人信息的列。

將多個表中的列聯接起來,使它們看起來象一個表。

聚合信息而非提供詳細信息。
例如,顯示一個列的和,或列的最大值和最小值。

通過定義 SELECT 語句以檢索將在視圖中顯示的數據來創建視圖。SELECT 語句引用的數據表稱為視圖的基表。在下例中,pubs 資料庫中的 titleview 是一個視圖,該視圖選擇三個基表中的數據來顯示包含常用數據的虛擬表:

CREATE VIEW titleview
AS
SELECT title, au_ord, au_lname, price, ytd_sales, pub_id
FROM authors AS a
JOIN titleauthor AS ta ON (a.au_id = ta.au_id)
JOIN titles AS t ON (t.title_id = ta.title_id)

之後,可以用引用表時所使用的方法在語句中引用 titleview。

SELECT *
FROM titleview

一個視圖可以引用另一個視圖。例如,titleview 顯示的信息對管理人員很有用,但公司通常只在季度或年度財務報表中才公布本年度截止到現在的財政數字。可以建立一個視圖,在其中包含除 au_ord 和 ytd_sales 外的所有 titleview 列。使用這個新視圖,客戶可以獲得已上市的書籍列表而不會看到財務信息:

CREATE VIEW Cust_titleview
AS
SELECT title, au_lname, price, pub_id
FROM titleview

視圖可用於在多個資料庫或 Microsoft? SQL Server? 2000 實例間對數據進行分區。分區視圖可用於在整個伺服器組內分布資料庫處理。伺服器組具有與伺服器聚集相同的性能優點,並可用於支持最大的 Web 站點或公司數據中心的處理需求。原始表被細分為多個成員表,每個成員表包含原始表的行子集。每個成員表可放置在不同伺服器的資料庫中。每個伺服器也可得到分區視圖。分區視圖使用 Transact-SQL UNION 運算符,將在所有成員表上選擇的結果合並為單個結果集,該結果集的行為與整個原始表的復本完全一樣。例如在三個伺服器間進行表分區。在第一個伺服器上定義如下的分區視圖:

CREATE VIEW PartitionedView AS
SELECT *
FROM MyDatabase.dbo.PartitionTable1
UNION ALL
SELECT *
FROM Server2.MyDatabase.dbo.PartitionTable2
UNION ALL
SELECT *
FROM Server3.MyDatabase.dbo.PartitionTable3

在其它兩個伺服器上定義類似的分區視圖。利用這三個視圖,三個伺服器上任何引用 PartitionedView 的 Transact-SQL 語句都將看到與原始表中相同的行為。似乎每個伺服器上都存在原始表的復本一樣,而實際上每個表只有一個成員表和分區視圖。有關更多信息,請參見視圖使用方案。

只要所做的修改隻影響視圖所引用的其中一個基表,就可以更新所有 SQL Server 版本內的視圖(可以對其執行 UPDATE、DELETE 或 INSERT 語句)。

-- Increase the prices for publisher 』0736』 by 10%.
UPDATE titleview
SET price = price * 1.10
WHERE pub_id = 』0736』
GO

SQL Server 2000 支持可引用視圖的更復雜的 INSERT、UPDATE 和 DELETE 語句。可在視圖上定義 INSTEAD OF 觸發器,指定必須對基表執行的個別更新以支持 INSERT、UPDATE 或 DELETE 語句。另外,分區視圖還支持 INSERT、UDPATE 和 DELETE 語句修改視圖所引用的多個成員表。

索引視圖是 SQL Server 2000 具有的功能,可顯著提高復雜視圖類型的性能,這些視圖類型通常在數據倉庫或其它決策支持系統中出現。

視圖的結果集通常不保存在資料庫中,因此視圖也稱為虛擬表。視圖的結果集動態包含在語句邏輯中並在運行時動態生成。有關更多信息,請參見視圖解析。

復雜的查詢(如決策支持系統中的查詢)可引用基表中的大量行,並將大量信息聚積在相對較簡潔的聚合中,如總和或平均值。SQL Server 2000 支持在執行此類復雜查詢的視圖上創建聚集索引。當執行 CREATE INDEX 語句時,視圖 SELECT 的結果集將永久存儲在資料庫中。SQL 語句此後若引用該視圖,響應時間將會顯著縮短。對基本數據的修改將自動反映在視圖中。

SQL Server 2000 CREATE VIEW 語句支持 SCHEMABINDING 選項,以防止視圖所引用的表在視圖未被調整的情況下發生改變。必須為任何創建索引的視圖指定 SCHEMABINDING。

例:創建視圖
Create View TitleView
AS
Select ID,Title,PostTime,Hits From [List]
然後引用Select Top 100 * From TitleView
用循環輸出數據與直接Select Top 100 * From [List]相比速度提高將近30毫秒!
當然我這里只是舉例子,一般情況下對單個表沒必要去用視圖

⑵ 在資料庫中為什麼要使用查詢和視圖它們之間有何區別

視圖可以被看成是虛擬表或存儲查詢。可通過視圖訪問的數據不作為獨特的對象存儲在資料庫內。資料庫內存儲的是 SELECT 語句。SELECT 語句的結果集構成視圖所返回的虛擬表。用戶可以用引用表時所使用的方法,在 Transact-SQL 語句中通過引用視圖名稱來使用虛擬表。視圖是預編譯的查詢,以後可以直接調用視圖,而免去重復寫查詢的麻煩。

⑶ sql server2000中的「視圖」和「存儲過程」有什麼不同

1.視圖是虛擬表,例如有一個員工表,有一個工資表,查詢工資時總是兩個表一起查詢,那麼就可以建一個員工工資視圖裡面來自員工表的員工編號和姓名又有來自工資表的員工工資。
2.存儲過程是一組為了完成特定功能的sql 語句集,經編譯後存儲在資料庫中。類型於函數,但函數有返回值。
3.存儲過程沒辦法編輯?你是指它裡面的數據不能改變嗎?兄弟,它本來裡面就沒有數據,只是給你調用的時候才用相應的根據參數返回不同的東西而已。
4.視圖不能寫修改語句(包括插入)。
5.另外,建議您在練習時可以用視圖,但開發項目時最好不用,因為其性能不佳。
謝謝。

⑷ 資料庫系統中,視圖和表是什麼關系

資料庫系統中,視圖是數據對象,視圖可以被看成是虛擬表或存儲查詢,只有在資料庫打開時才能使用。
表是處理數據、創建關系資料庫和應用的基本單元,可以是自由表,或是資料庫的一部分的資料庫表。

⑸ SQL 中視圖的定義

整理了下他們的區別和聯系,或許還不是那麼詳細和完整,希望能對你有點幫助!
區別:1、視圖是已經編譯好的sql語句。而表不是
2、視圖沒有實際的物理記錄。而表有。
3、表是內容,視圖是窗口
4、表只用物理空間而視圖不佔用物理空間,視圖只是邏輯概念的存在,表可以及時四對它進行修改,但視圖只能有創建的語句來修改
5、表是內模式,試圖是外模式
6、視圖是查看數據表的一種方法,可以查詢數據表中某些欄位構成的數據,只是一些sql語句的集合。從安全的角度說,視圖可以不給用戶接觸數據表,從而不知道表結構。
7、表屬於全局模式中的表,是實表;視圖屬於局部模式的表,是虛表。
8、視圖的建立和刪除隻影響視圖本身,不影響對應的基本表。
聯系:視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關系

⑹ 資料庫視圖到底是什麼東西

據庫視圖的概念視圖是原始資料庫數據的一種變換,是查看錶中數據的另外一種方式,通過它可以看到感興趣的數據。可以將視圖看成是一個移動的窗口.視圖是從一個或多個實際表中獲得的,這些表的數據存放在資料庫中。那些用於產生視圖的表叫做該視圖的基表

閱讀全文

與視圖就是預編譯的sql相關的資料

熱點內容
應用被加密但不知道密碼 瀏覽:584
百度雲黑馬android 瀏覽:773
java格式化long 瀏覽:893
汽車如何加密文檔 瀏覽:625
公司理財第9版pdf 瀏覽:524
微信個人表情在文件夾 瀏覽:833
加密狗密碼監控 瀏覽:437
重載發生在編譯時 瀏覽:417
怎麼用app買東西 瀏覽:532
ug後處理多坐標宏命令 瀏覽:34
性教育pdf 瀏覽:863
解釋方式編譯方式名詞解釋 瀏覽:851
wrf編譯出現module 瀏覽:616
插入演算法最基礎代碼 瀏覽:27
powermill和ug編程 瀏覽:843
vf命令按鈕 瀏覽:283
塗鴉王國app怎麼 瀏覽:37
oppo如何關閉加密應用震動 瀏覽:802
直接拍PDF 瀏覽:580
伺服器有一個自動分配的ip地址嗎 瀏覽:470