在教務系統中,由於我負責的是基礎資訊模組,要為其他模組提供很多資訊.這樣就需要寫很多dal層的方法.我們都是用儲存過程實現的.其中裡面新增,修改,刪除方法沒有什麼好說的.重要的就是一些查詢方法,用到了一些高階的查詢.這裡總結一些資料庫查詢方法.
一:特殊關鍵字的查詢
1:in (not in)
關鍵字in的作用是要查詢的資料只要在一組資料中出現,結果就為真.
not in 只要不再一組資料中出現,結果就為真
例子:查詢職稱是教授或者副教授的老師
select * from teacherinfo where teachertype in ('教授','副教授')
2:distinct
它的作用是顯示關鍵字值相等的多條記錄中的一條
例子:查詢所有學年
select distinct years from yearsemester
二:高階查詢方法
with as
with as短語,也叫做子查詢部分(subquery factoring),可以讓你做很多事情,定義乙個sql片斷,該sql片斷會被整個sql語句所用到。有的時候,是為了讓sql語句的可讀性更高些,也有可能是在union all的不同部分,作為提供資料的部分。
特別對於union all比較有用。因為union all的每個部分可能相同,但是如果每個部分都去執行一遍的話,則成本太高,所以可以使用with as短語,則只要執行一遍即可。如果with as短語所定義的表名被呼叫兩次以上,則優化器會自動將with as短語所獲取的資料放入乙個temp表裡,如果只是被呼叫一次,則不會。而提示materialize則是強制將with as短語裡的資料放入乙個全域性臨時表裡。很多查詢通過這種方法都可以提高速度。
with as 相比較其他查詢來說,效率高,推薦使用.其中牛腩在新聞系統中也使用過.
例子:根據編號查詢懲罰資訊,studentinfo為學生表,publishhistory為懲罰歷史表
with s as (select studentinfo .stuno ,studentinfo .truename ,studentinfo .*** from studentinfo )
select p.stuno,s.*** ,s.truename ,p.publishreasonid ,p.publishdate ,p .publishresultid ,p .publishdepartment from publishhistory p,s where
p.stuno = (s.stuno ) and id =@id and iseffective ='是'
教務系統 資料庫查詢
在教務系統中,由於我負責的是基礎資訊模組,要為其他模組提供很多資訊.這樣就需要寫很多dal層的方法.我們都是用儲存過程實現的.其中裡面新增,修改,刪除方法沒有什麼好說的.重要的就是一些查詢方法,用到了一些高階的查詢.這裡總結一些資料庫查詢方法.一 特殊關鍵字的查詢 1 in not in 關鍵字in...
資料庫系統表查詢
1.利用sysobjects系統表查詢 在這個表中,在資料庫中建立的每個物件 例如約束 預設值 日誌 規則以及儲存過程 都有對應一行。select from sysobjects where xtype u 物件型別 xtype 值的含義 af aggregate function clr c ch...
資料庫系統 資料庫 資料庫管理系統 資料庫系統
繼續寫資料庫系統的文章,第二篇 資料庫 資料庫管理系統 資料庫系統。本文主要談談這三者之間的關係。下方,摘自老師的ppt,非原創。資料庫管理系統 從系統角度看資料庫管理系統 資料庫系統 資料庫指的是長期儲存在計算機內有組織的,大量的,相關聯的,可共享的資料集合。資料應當是有組織的,不應該是雜亂無章的...