自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server視圖的使用

數(shù)據(jù)庫 SQL Server
在SQL Server數(shù)據(jù)庫中,視圖可以被看成是虛擬表或存儲查詢,使用視圖可以實現(xiàn)很多的功能,下面讓我們一起來了解一下。

SQL Server視圖可是實現(xiàn)很多功能,下面就為您詳細介紹SQL Server視圖的使用,如果您對SQL Server視圖方面感興趣的話,不妨一看。

SQL Server視圖可以被看成是虛擬表或存儲查詢??赏ㄟ^SQL Server視圖訪問的數(shù)據(jù)不作為獨特的對象存儲在數(shù)據(jù)庫內(nèi)。數(shù)據(jù)庫內(nèi)存儲的是 SELECT 語句。SELECT 語句的結(jié)果集構(gòu)成視圖所返回的虛擬表。用戶可以用引用表時所使用的方法,在 Transact-SQL 語句中通過引用視圖名稱來使用虛擬表。使用視圖可以實現(xiàn)下列任一或所有功能:

將用戶限定在表中的特定行上。

例如,只允許雇員看見工作跟蹤表內(nèi)記錄其工作的行。

將用戶限定在特定列上。

例如,對于那些不負責(zé)處理工資單的雇員,只允許他們看見雇員表中的姓名列、辦公室列、工作電話列和部門列,而不能看見任何包含工資信息或個人信息的列。

將多個表中的列聯(lián)接起來,使它們看起來象一個表。

聚合信息而非提供詳細信息。

例如,顯示一個列的和,或列的***值和最小值。

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

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

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

  1. SELECT * FROM titleview  

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

  1. CREATE VIEW Cust_titleview  
  2. AS  
  3. SELECT title, au_lname, price, pub_id  
  4. FROM titleview  

SQL Server視圖可用于在多個數(shù)據(jù)庫或 Microsoft? SQL Server? 2000 實例間對數(shù)據(jù)進行分區(qū)。分區(qū)視圖可用于在整個服務(wù)器組內(nèi)分布數(shù)據(jù)庫處理。服務(wù)器組具有與服務(wù)器聚集相同的性能優(yōu)點,并可用于支持***的 Web 站點或公司數(shù)據(jù)中心的處理需求。原始表被細分為多個成員表,每個成員表包含原始表的行子集。每個成員表可放置在不同服務(wù)器的數(shù)據(jù)庫中。每個服務(wù)器也可得到分區(qū)視圖。分區(qū)視圖使用 Transact-SQL UNION 運算符,將在所有成員表上選擇的結(jié)果合并為單個結(jié)果集,該結(jié)果集的行為與整個原始表的復(fù)本完全一樣。例如在三個服務(wù)器間進行表分區(qū)。在***個服務(wù)器上定義如下的分區(qū)視圖:

  1. CREATE VIEW PartitionedView AS  
  2. SELECT *  
  3. FROM MyDatabase.dbo.PartitionTable1  
  4. UNION ALL  
  5. SELECT *  
  6. FROM Server2.MyDatabase.dbo.PartitionTable2  
  7. UNION ALL  
  8. SELECT *  
  9. FROM Server3.MyDatabase.dbo.PartitionTable3  

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

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

  1. -- Increase the prices for publisher ’0736’ by 10%.  
  2. UPDATE titleview  
  3. SET priceprice = price * 1.10  
  4. WHERE pub_id = ’0736’  
  5. GO  

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

索引視圖是 SQL Server 2000 具有的功能,可顯著提高復(fù)雜視圖類型的性能,這些視圖類型通常在數(shù)據(jù)倉庫或其它決策支持系統(tǒng)中出現(xiàn)。

視圖的結(jié)果集通常不保存在數(shù)據(jù)庫中,因此視圖也稱為虛擬表。視圖的結(jié)果集動態(tài)包含在語句邏輯中并在運行時動態(tài)生成。有關(guān)更多信息,請參見視圖解析。

復(fù)雜的查詢(如決策支持系統(tǒng)中的查詢)可引用基表中的大量行,并將大量信息聚積在相對較簡潔的聚合中,如總和或平均值。SQL Server 2000 支持在執(zhí)行此類復(fù)雜查詢的視圖上創(chuàng)建聚集索引。當(dāng)執(zhí)行 CREATE INDEX 語句時,視圖 SELECT 的結(jié)果集將***存儲在數(shù)據(jù)庫中。SQL 語句此后若引用該視圖,響應(yīng)時間將會顯著縮短。對基本數(shù)據(jù)的修改將自動反映在視圖中。

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

例:創(chuàng)建視圖

  1. Create View TitleView  
  2. AS  
  3. Select ID,Title,PostTime,Hits From [List] 

然后引用Select Top 100 * From TitleView 用循環(huán)輸出數(shù)據(jù)與直接Select Top 100 * From [List]相比速度提高將近30毫秒!當(dāng)然我這里只是舉例子,一般情況下對單個表沒必要去用視圖


 

 

【編輯推薦】

sql server表格變量的用法

SQL Server變量賦值的方法

SQL Server創(chuàng)建視圖的語法

SQL Server視圖定義信息的查詢

SQL Server排序規(guī)則的應(yīng)用

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-11-11 17:15:13

SQL Server視

2010-11-09 15:06:52

SQL Server動

2010-09-27 09:54:26

Sql Server視

2011-04-02 17:21:29

sql server視圖

2010-09-13 11:09:34

SQL SERVER分

2010-11-11 17:20:51

SQL Server創(chuàng)

2011-03-21 15:10:13

SQL Server 視圖*

2010-07-14 10:11:30

SQL Server系

2011-04-02 13:37:05

SQL Server 索引視圖

2010-07-19 09:31:53

SQL Server系

2010-11-11 16:59:59

SQL Server視

2010-07-12 10:34:58

SQL Server視

2010-07-07 13:18:13

SQL Server視

2010-07-19 16:36:13

SQL Server視

2009-07-02 12:57:00

SQL Server視

2010-07-15 15:42:38

2010-10-21 14:21:15

SQL Server視

2010-07-06 17:16:43

SQL Server視

2010-11-12 11:25:44

SQL SERVER視

2010-11-11 16:53:28

SQL Server視
點贊
收藏

51CTO技術(shù)棧公眾號