簡析SQL Server數(shù)據(jù)庫用視圖來處理復雜的數(shù)據(jù)查詢關系
SQL Server數(shù)據(jù)庫用視圖來處理復雜的數(shù)據(jù)查詢關系是本文我們主要要介紹的內容,該內容是這樣想到的:在輔助教務系統(tǒng)那塊的時候,我做的一個頁面是對單個老師和整個學院老師的工作量查詢,這個操作設計到了三個本數(shù)據(jù)庫中的表和一個不同數(shù)據(jù)庫中的一個教師信息表,如果用普通的SQL語句是非常難實現(xiàn)的,由于我剛開始做的視頻播放系統(tǒng),數(shù)據(jù)庫的表相對比較少,沒有涉及到這么復雜的處理關系,剛開始感覺很難。
后來想到用視圖可以解決多個表的復雜關系,但是另外一張表是不同數(shù)據(jù)庫的,是否依然能進行操作,經(jīng)過測試之后,居然可以將不同數(shù)據(jù)庫中的兩張表進行建立視圖關系,從而視圖就是一個虛擬的表,我們將需要查詢的不同數(shù)據(jù)庫中的表或者相同數(shù)據(jù)庫中的表,放到一起,然后選擇需要的字段,重新建立一個新的虛表,然后這個視圖就可以作為一個新的表,進行操作。這樣就為我們提供了很多方便。
視圖是一個續(xù)表,是從一個或者多個表或視圖倒出來的表,其結構和數(shù)據(jù)時建立在對表的查詢基礎上的。
視圖的優(yōu)點:
1.視圖可以讓用戶我們選擇某些特定的數(shù)據(jù)和或者特定的任務,而那些不需要的或者無用的數(shù)據(jù)可以不再視圖中顯示。
2.視圖大大的簡化了對數(shù)據(jù)庫的操作,可以通過視圖操作進行對表的操作。
3.視圖可以讓不同的用戶以不同的方式看到不同或者相同的數(shù)據(jù)集,相當方便
4.在某些情況下,由于表中數(shù)據(jù)量太大,因此在表的設計時常將表進行水平或者垂直分割,但是表的結構變化對應用程序的產(chǎn)生不良的影響,而使用視圖可以重新組織數(shù)據(jù),從而使外模式保持不變,原有的應用程序可以通過視圖來重載數(shù)據(jù)。
5.視圖提供了一個簡單而有效的安全機制。
視圖的缺點:
如果該視圖處理的數(shù)據(jù)量非常大,那么就給sql數(shù)據(jù)庫帶來了很多壓力,執(zhí)行速度相對來說比較慢,不如存儲過程,所以如果可以用存儲過程實現(xiàn)的,優(yōu)先用存儲過程 創(chuàng)
建視圖主要創(chuàng)建方式:
1.用sql server管理平臺創(chuàng)建視圖
2.用Transact-sql語句中的create view命令來創(chuàng)建視圖
3.利用sql sever管理平臺的視圖模板來創(chuàng)建視圖
創(chuàng)建視圖的時候要注意:
1.只能在當前數(shù)據(jù)庫中創(chuàng)建視圖,在視圖中最多只能引用1024例,視圖中記錄數(shù)目先知只有其基表中的記錄數(shù)決定。
2.如果視圖引用的基表或者視圖被刪除,該視圖不能再被使用,知道創(chuàng)建新的基表或者視圖
3.如果視圖中某一列是函數(shù)、數(shù)學表達式、常量或者來自多個表中的列名相同,則必須為列定義名稱。
4.不能再視圖上創(chuàng)建索引,不能再規(guī)則、默認、觸發(fā)器中引用視圖
5.當通過視圖查詢數(shù)據(jù)時,sql server要檢查以確保語句中涉及的所有數(shù)據(jù)庫對象存在,每個數(shù)據(jù)庫對象在語句的上下文中有效,而且數(shù)據(jù)修改語句不能違反數(shù)據(jù)完整性規(guī)則。
6.視圖的名稱必須遵循標示符的規(guī)則,且對每個用戶必須是唯一的,此外,該名稱不得與該用戶有任何相同名稱的表 這是建立的視圖,其中TeacherInfo是從另外一個數(shù)據(jù)庫中添加進來的。
以下是通過視圖查詢出來的數(shù)據(jù)表 “select * from QueryWorkInfoByFaculty”
關于SQL Server數(shù)據(jù)庫用視圖來處理復雜的數(shù)據(jù)查詢關系的相關知識就介紹到這里了,希望本次的介紹能夠對您有所收獲!
相關文章
SSB(SQLservice Service Broker) 入門實例介紹
前兩天用了 MSsql里的 SSB委托機制,做了一個消息分發(fā)的小功能,在這里簡單跟大家分享一下方法跟實例2013-04-04SQL Server 2012 FileTable 新特性詳解
FileTable是基于FILESTREAM的一個特性。本文給大家介紹SQL Server 2012 FileTable 新特性詳解,非常不錯,感興趣的朋友一起學習吧2016-08-08SQL學習筆記八 索引,表連接,子查詢,ROW_NUMBER
SQL學習筆記八 索引,表連接,子查詢,ROW_NUMBER,學習sqlserver的朋友可以看下。2011-08-08SqlServer數(shù)據(jù)庫提示 “tempdb” 的日志已滿 問題解決方案
本文主要講述了筆者在執(zhí)行sql語句的過程中,遇到提示“數(shù)據(jù)庫 'tempdb' 的日志已滿。請備份該數(shù)據(jù)庫的事務日志以釋放一些日志空間。”的解決過程,希望對大家有所幫助2014-08-08SQL order by ID desc/asc加一個排序的字段解決查詢慢問題
解決方法就是在order by ID desc再加一個排序的字段,這樣子可能會把速度提高很多,需要朋友可以試一下2012-12-12sqlserver 無法驗證產(chǎn)品密匙的完美解決方案[測試通過]
Win2003 SQL2000時CD-KEY(序列號)無法驗證的問題的解決方法2009-07-07