程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQLServer視圖:視圖簡介

SQLServer視圖:視圖簡介

編輯:關於SqlServer

先舉一個例子,在Northwind數據庫中,如果要查看一個訂單是由哪個雇員簽訂的,簽訂的時間是什麼時候,買了什麼產品,價格是多少,由誰來送貨,送貨的地址是什麼等內容,那麼就要從產品、訂單、訂單明細、雇員和運貨商五個表中查詢記錄,其查詢代碼如下:

SELECT 訂單.訂單ID, 雇員.姓氏, 雇員.名字, 產品.產品名稱,

         訂單明細.單價, 訂單明細.數量, 訂單明細.折扣, 運貨商.公司名稱,

         訂單.貨主名稱, 訂單.貨主地址, 訂單.貨主城市, 訂單.訂購日期,

         訂單.發貨日期

FROM 訂單 INNER JOIN

           訂單明細 ON 訂單.訂單ID = 訂單明細.訂單ID INNER JOIN

           雇員 ON 訂單.雇員ID = 雇員.雇員ID INNER JOIN

           產品 ON 訂單明細.產品ID = 產品.產品ID INNER JOIN

           運貨商 ON 訂單.運貨商 = 運貨商.運貨商ID

如果要查詢具體某一個訂單的詳細內容,還要在其後增加一個“WHERE 訂單.訂單ID =”的語句。


如果經常需要查詢相同的字段內容(只是條件不同,如上例中可能只是訂單的ID號不同而已),那麼每次都重復地寫這麼一大串相同的代碼,無疑會增加工作量和影響工作效率。

再看一下圖9.1,其顯示出來的界面與在SQL Server Management Studio中打開一個表的界面是否十分相似?如果將這個查詢的結果集視為一個表,那麼這個表就是一個視圖,下面是將該查詢結果創建成視圖的代碼:

CREATE VIEW 訂單詳細視圖

AS

SELECT 訂單.訂單ID, 雇員.姓氏, 雇員.名字, 產品.產品名稱,

         訂單明細.單價, 訂單明細.數量, 訂單明細.折扣, 運貨商.公司名稱,

         訂單.貨主名稱, 訂單.貨主地址, 訂單.貨主城市, 訂單.訂購日期,

         訂單.發貨日期

FROM 訂單 INNER JOIN

           訂單明細 ON 訂單.訂單ID = 訂單明細.訂單ID INNER JOIN

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved