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_StudentInfo
AS
SELECT語句

使用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_StudentInfo
AS
SELECT a.Number,a.NAME,c.ClassName,
b.C#,b.SqlDB,b.Java,b.Python FROM a_Students a
INNER JOIN a_StudentsScore b ON a.Number=b.Number
INNER JOIN a_StudentClass c ON c.ClassId=a.ClassId
go

--查詢成績視圖
SELECT * FROM view_StudentInfo

效果展示

 

歡迎關注訂閱我的微信公眾平台【熊澤有話說】,更多好玩易學知識等你來取
作者:熊澤-學習中的苦與樂
公眾號:熊澤有話說
出處: https://www.cnblogs.com/xiongze520/p/14566646.html
創作不易,任何人或團體、機構全部轉載或者部分轉載、摘錄,請在文章明顯位置注明作者和原文鏈接。  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM