天天看點

SqlServer視圖的建立與使用

SqlServer系列之視圖的建立與使用:

 什麼是視圖?

視圖的概述

在資料查詢中,可以看到資料表設計過程中,考慮到資料的備援度低、資料一緻性等問題,通常對資料表的設計要滿足範式的要求,是以也會造成一個實體的所有資訊儲存在多個表中。

當檢索資料時,往往在一個表中不能夠得到想要的所有資訊。 為了解決這種沖突,在SQL Server中提供了視圖。

視圖的概念

視圖是一種資料庫對象,是從一個或者多個資料表或視圖中導出的虛表,視圖的結構和資料是對資料表進行查詢的結果,隻存放視圖的定義,不存放視圖對應的資料;

其結構和和資料是建立在對表的查詢基礎上,故表中的資料發生變化,從視圖中查詢出的資料也随之改變。

視圖的使用,跟對普通的表的查詢使用完全一樣。

視圖的特點

1. 視圖能夠簡化使用者的操作,進而簡化查詢語句

2. 視圖使使用者能以多種角度看待同一資料,增加可讀性

3. 視圖對重構資料庫提供了一定程度的邏輯獨立性;

4. 視圖能夠對機密資料提供安全保護;

5. 适當的利用視圖可以更清晰的表達查詢。

使用視圖的注意事項

1、隻能在目前資料庫中建立視圖;

2、視圖的命名必須遵循辨別符命名規則,不可與表同名;

4、如果視圖中某一列是函數、數學表達式、常量或者來自多個表的列名相同,則必須為列定義名稱。

5、當視圖引用基表或視圖被删除,該視圖也不能再被使用。

6、不能在視圖上建立全文索引,不能在規則、預設的定義中引用視圖。

7、一個視圖最多可以引用1024個列。

8、視圖最多可以嵌套32層。

視圖的用途

1、篩選表中的行;

2、防止未經許可的使用者通路敏感資料。降低資料庫的複雜程度;

3、将多個實體資料庫抽象為一個邏輯資料庫。

手動建立視圖

按照下面操作儲存後建立成功;

代碼建立視圖

使用T-SQL語句建立視圖

CREATE VIEW view_StudentInfoASSELECT語句      

使用T-SQL語句删除視圖

--判斷:如果存在指定視圖則删除IF EXISTS (SELECT * FROM sysobjects WHERE name='view_StudentInfo')  --單引号裡面為視圖名稱
    DROP VIEW view_StudentInfo --視圖名稱      

使用T-SQL語句檢視視圖

SELECT * FROM view_StudentInfo      

案例代碼

--判斷:如果存在指定視圖則删除IF EXISTS (SELECT * FROM sysobjects WHERE name='view_StudentInfo')  --單引号裡面為視圖名稱
    DROP VIEW view_StudentInfo --視圖名稱go--建立成績查詢視圖CREATE VIEW view_StudentInfoASSELECT a.Number,a.NAME,c.ClassName,
b.C#,b.SqlDB,b.Java,b.Python FROM a_Students aINNER JOIN a_StudentsScore b ON a.Number=b.NumberINNER JOIN a_StudentClass c ON c.ClassId=a.ClassIdgo--查詢成績視圖SELECT * FROM view_StudentInfo      

效果展示

繼續閱讀