SqlServer系列之視圖的建立與使用:html
在數據查詢中,能夠看到數據表設計過程當中,考慮到數據的冗餘度低、數據一致性等問題,一般對數據表的設計要知足範式的要求,所以也會形成一個實體的全部信息保存在多個表中。數據庫
當檢索數據時,每每在一個表中不可以獲得想要的全部信息。 爲了解決這種矛盾,在SQL Server中提供了視圖。安全
視圖是一種數據庫對象,是從一個或者多個數據表或視圖中導出的虛表,視圖的結構和數據是對數據表進行查詢的結果,只存放視圖的定義,不存放視圖對應的數據;微信
其結構和和數據是創建在對錶的查詢基礎上,故表中的數據發生變化,從視圖中查詢出的數據也隨之改變。微信公衆平臺
視圖的使用,跟對普通的表的查詢使用徹底同樣。函數
1. 視圖可以簡化用戶的操做,從而簡化查詢語句學習
2. 視圖使用戶能以多種角度看待同一數據,增長可讀性spa
3. 視圖對重構數據庫提供了必定程度的邏輯獨立性;設計
4. 視圖可以對機密數據提供安全保護;3d
5. 適當的利用視圖能夠更清晰的表達查詢。
一、只能在當前數據庫中建立視圖;
二、視圖的命名必須遵循標識符命名規則,不可與表同名;
四、若是視圖中某一列是函數、數學表達式、常量或者來自多個表的列名相同,則必須爲列定義名稱。
五、當視圖引用基表或視圖被刪除,該視圖也不能再被使用。
六、不能在視圖上建立全文索引,不能在規則、默認的定義中引用視圖。
七、一個視圖最多能夠引用1024個列。
八、視圖最多能夠嵌套32層。
一、篩選表中的行;
二、防止未經許可的用戶訪問敏感數據。下降數據庫的複雜程度;
三、將多個物理數據庫抽象爲一個邏輯數據庫。
按照下面操做保存後建立成功;
CREATE VIEW view_StudentInfo AS SELECT語句
--判斷:若是存在指定視圖則刪除 IF EXISTS (SELECT * FROM sysobjects WHERE name='view_StudentInfo') --單引號裏面爲視圖名稱 DROP VIEW view_StudentInfo --視圖名稱
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 創做不易,任何人或團體、機構所有轉載或者部分轉載、摘錄,請在文章明顯位置註明做者和原文連接。 |