Sql Server視圖的概念
在Sql Server數據庫中,Sql Server視圖是非常重要的概念,作為查詢所定義的虛擬表,Sql Server視圖在Sql的用途非常廣泛。
Sql Server視圖是由一個查詢所定義的虛擬表,它與物理表不同的是,視圖中的數據沒有物理表現形式,除非你為其創建一個索引;如果查詢一個沒有索引的視圖,Sql Server實際訪問的是基礎表。
如果你要創建一個Sql Server視圖,為其指定一個名稱和查詢即可。Sql Server只保存視圖的元數據,用戶描述這個對象,以及它所包含的列,安全,依賴等。當你查詢視圖時,無論是獲取數據還是更新數據,Sql server都用視圖的定義來訪問基礎表;
Sql Server視圖在我們日常操作也扮演著許多重要的角色,比如可以利用視圖訪問經過篩選和處理的數據,而不是直接訪問基礎表,以及在一定程度上也保護了基礎表。
我們在創建Sql Server視圖的時候,也要遵守三個規則:
不能在視圖定義中指定ORDER BY ,除非定義中包含Top或For Xml 說明;所有的列必須有列名;這些所有的列名必須唯一; 對于視圖表中在沒有top或for xml說明的情況下,不能有Order by 語句,這是因為視圖被認為是一個表,表是一個邏輯的實體,它的行是沒有順序的。視圖中所有列必須有列名,且唯一的情況我想大家都理解;
下面的sql語句表示創建一個簡單的Sql Server視圖:
- CREATE VIEW dbo.V1
- AS
- SELECT CustomerID,CompanyName FROM Customers
- WHERE EXISTS(SELECT * FROM Orders WHERE Customers.CustomerID = Orders
【編輯推薦】
詢表的字段名的sql語句寫法