視圖
視圖的概念
- 是存儲在服務器端的一個查詢塊,是一張虛擬表
- 表示一張表的部分數據或多張表的綜合數據
- 其結構和數據是建立在對錶的查詢基礎上
- 視圖的使用,跟普通數據表的查詢使用完全一樣
視圖中不存放數據
數據存放在視圖所引用的原始數據表中
表視圖的多樣性
一個或多個原始數據表,根據不同用戶的不同需求,可以創建不同的視圖
視圖的用途
- 篩選表中的行
- 防止未經許可的用戶訪問敏感數據
- 降低數據庫的複雜程度
- 將多個物理數據庫抽象爲一個邏輯數據庫
如何使用視圖
使用管理器創建視圖
使用T-SQL創建視圖
CREATE VIEW 視圖名稱
AS
SELECT 語句
CREATE VIEW StudentScore
AS
SELECT Students.StudentId,StudentName,ScoreList.CSharp,ScoreList.SQLServerDB,StudentClass.ClassName FROM Students INNER JOIN ScoreList ON ScoreList.StudentId=Students.StudentId INNER JOIN StudentClass ON StudentClass.ClassId=Students.ClassId
使用T-SQL刪除視圖
IF EXISTE (SELECT * FROM sysobjects WHERE name='視圖名')
DROP VIEW 視圖名
IF EXISTS (SELECT * FROM sysobjects WHERE name ='StudentScore')
DROP VIEW StudentScore
使用T-SQL查看視圖
SELECT * FROM 視圖名
使用視圖注意
- 視圖中可以使用多個表
- 一個視圖可以嵌套另一個視圖(儘量少用)
- 視圖定義中的SELECT語句不能包括下列內容
- ORDER BY子句,除非在SELECT語句的選擇列表中也有一個TOP子句
- INTO關鍵字
- 引用臨時表或表變量