<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Feng.Li's Java See

    抓緊時間,大步向前。
    隨筆 - 95, 文章 - 4, 評論 - 58, 引用 - 0
    數據加載中……

    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_ordytd_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。

    posted on 2007-03-29 10:19 小鋒 閱讀(235) 評論(0)  編輯  收藏 所屬分類: Oracle


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品无码专区久久同性男| 一级毛片免费观看不卡视频| 国产亚洲av片在线观看16女人| 免费的黄色的网站| 亚洲人成电影在在线观看网色| 大地资源在线资源免费观看| ass亚洲**毛茸茸pics| 国产成人亚洲精品91专区手机| 免费激情网站国产高清第一页| 亚洲А∨精品天堂在线| 国产成人免费在线| 乱爱性全过程免费视频| 中文文字幕文字幕亚洲色| 亚洲一区二区三区在线观看精品中文| 日韩精品无码免费专区网站| 亚洲一卡2卡三卡4卡无卡下载| 国产精品无码免费视频二三区| 特级毛片全部免费播放a一级| 亚洲麻豆精品国偷自产在线91| 中文字幕在线视频免费| 亚洲乱亚洲乱妇24p| 久久综合亚洲色一区二区三区| 久久久久久免费视频| 成全视频高清免费观看电视剧| 久久狠狠高潮亚洲精品| 免费欧洲美女牲交视频| 免费观看黄色的网站| 久久99精品免费一区二区| 欧美亚洲国产SUV| 亚洲av日韩av综合| 亚洲AV日韩精品久久久久久久| 成年女人喷潮毛片免费播放| 99久久人妻精品免费二区| caoporm碰最新免费公开视频| 亚洲精品私拍国产福利在线| 国产亚洲午夜高清国产拍精品| 蜜桃成人无码区免费视频网站| 亚洲欧洲无码AV不卡在线| 亚洲av永久无码嘿嘿嘿| 亚洲成人福利网站| 久久精品国产亚洲AV网站|