熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

SQL實戰新手入門:分層的視圖

2013-11-13 12:43:30  來源: SQL語言 

   分層的視圖

  實際上視圖只是數據庫中的另一個表因此可以將其作為創建其他視圖的基礎事實上在同一個查詢中可以將視圖與其他視圖或表進行聯接然後再在其上創建一個新的視圖

  如果想查找個書架上價格最貴的前本書的作者則可以使用本章之前創建的vwTopbooksOnthShelf視圖並添加來自AUTHORS表的數據例如下面的代碼

  CREATE VIEW vwTopBooksWithAuthors

  AS SELECT

  vwbk_id

   vwtitle

   auau_last_name

  FROM vwTopbooksOnthShelf vw JOIN books_authors ba

  ON vwbk_id = babk_id

  JOIN authors au

  ON baau_id = auau_id;

  SELECT * FROM vwTopBooksWithAuthors;

  bk_id title au_last_name

  

   SQL Bible Kriegel

   SQL Bible Trukhnov

   Wiley Pathways: Introduction to Database Management Gillenson

   Wiley Pathways: Introduction to Database Management Ponniah

   Wiley Pathways: Introduction to Database Management Taylor

   Wiley Pathways: Introduction to Database Management Powell

   Wiley Pathways: Introduction to Database Management Miller

   Wiley Pathways: Introduction to Database Management Trukhnov

   Wiley Pathways: Introduction to Database Management Kriegel

   SQL Functions: Programmers Reference Kriegel

   SQL Functions: Programmers Reference Jones

   SQL Functions: Programmers Reference Stephens

   SQL Functions: Programmers Reference Plew

   SQL Functions: Programmers Reference Garrett

  ( row(s) affected)

  在上面這個例子中將一個視圖(vwTopbooksOnthShelf)與兩個表進行了聯接並在其上創建了另外一個視圖vwTopBooksWithAuthors這樣就可以使用單個SELECT語句從vwTopBooksWithAuthors視圖中抽取數據而無須關心封裝在這兩個視圖中的各種業務規則因為視圖已經對數據集的條件進行了限制即只返回位於頂層書架(甚至都不需要知道頂層是第層)中並且價格最貴的前本圖書

  分層的視圖為我們提供了各種各樣的可能性設想一下可以構建一個精心設計的視圖層次結構從數據模型中抽取各種數據讓數據用戶只需要使用一個簡單的SELECT語句就可以獲取信息而無須關心底層數據的復雜性!當然這需要在服務器的性能方面付出一定的代價由於視圖本質上是動態的因此無法像優化表一樣對視圖進行同樣的優化對於數據檢索視圖的速度也不可能像表一樣快速在視圖之上添加另外一級的視圖將會對數據庫的性能造成更加負面的影響盡管分層的視圖有著合理的應用場合但應該注意它對性能造成的影響

       返回目錄SQL實戰新手入門

       編輯推薦

       Oracle索引技術

       高性能MySQL

       數據倉庫與數據挖掘培訓視頻教程


From:http://tw.wingwit.com/Article/program/SQL/201311/16457.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.