三級數據庫(6)-高級數據查詢

1.範圍劃分明顯有利於範圍查詢和點查詢,s包含數據比較少,適合對s採用複製的方法.

2.GroundBy子句的作用是將查詢的結果按照指定的字段進行分組.

3.實現查詢結果差運算的運算符是EXCEPT.

4.SQLSever2008提供了4個排名函數,其中RANK函數返回結果集中每行數據在每個分區的排名,並且排名從1開始,中間數值可能間斷.DENSE_RANK函數與RANK的唯一區別是:中間數值不可間斷.

5.公用表達式:語句以WITH 名字(列1…列n)AS(select語句)

6.Select count(distinct A)over (partition by B) from C

Over還出現在開窗函數(必須放在over子句前)裏.

優先級: from > where > group by > having > order by                 分組函數group by 分析函數 partition by 聚合函數sum()

7.若where條件判斷用戶不在某個集合當中,一般使用not in子句.而當要查詢表中是否存在一條特定的記錄時,在SQL語句中被稱爲存在性測試.用exists

8.現要統計T1表中C1列取值不同的值的個數.查詢語句爲:select count(distinct c1) from t1;

Count(*)統計的是元組的個數,包括空,而count(列名)統計的是值的個數,不包括null行.

9.將查詢結果保存到新表(即還不存在)newtable中的語句是:select 列1,列2

Into newtable from 表1;

10.SQLSever2008支持三種用戶自定義函數:標量函數,內嵌表值函數和多語句表值函數.標量函數可以出現在select語句目標中,其他兩個必須放在select語句的from子句中.

11.區分sum和count的區別:count()函數用於統計元組的個數或者某個字段中值的個數,而sum()則用來計算某個字段值的總和.

12.Top 3 with ties(包括最後一行取值並列的結果)

13.Case語句按簡單語法原則.即能少些就少寫.能夠實現分情況顯示不同類型數據的函數就是case函數.

14.Where子句判斷條件爲空:is null

15.Not in和not exists的區別,涉及到多表時(子查詢中還有別的表被使用,或者自身表又被使用)用exists

16.Union是合併兩個或多個select語句的結果集,且各個結果集必須相同數量列.intersect是指兩個集合都存在的數據

17.Select top 3 *,注意*放在top 3後.時間格式數據2018/1/2沒有所謂的加#,#2018/1/2#.

18.通配符%可以匹配0到多個字符,下劃線_可以匹配任意一個字符.

19.獲取前n%行的數據,需要使用Top n percent

20.前後都是%的列查詢不會訪問索引.

21.外連接,自連接,內連接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章