sql server 查詢語句基礎

SELECT 查詢語句基礎

查詢語法如下:
SELECT  [  ALL  |  DISTINCT  ]   [  TOP  (<表達式>)  [  PERCENT  ]  [  WITH  TIES  ]  ] < 列名... >
[  FROM  <數據來源的表名 > ]
[  WHERE <  限制條件 > ]
[  GROUP BY  <  列名... > ]
[  HAVING < 基於 “ 聚合 ” 的限制條件 > ]
[  ORDER BY < 列名... >]
[  [ FOR XML  {RAW  |  AUTO  |  EXPLICIT |  PATH   [  ( < 元素 > )  ]  }  ]  [ ,  XMLDATA ][, ELEMENTS  ]  [  ,   BINARY base  64] ]  
[  OPTION (< 查詢提示>,  [ , ...n] )  ]

現在看不懂語法沒有關係,等到慢慢學習後逐漸就會明白了。

SELECT(查詢)

FROM *
SELECT [表名]
--或者是
FROM [列名...]
SELECT [表名]
“ * ”號表示所有列

WHERE(條件)

查詢滿足條件的數據
SELECT [表的列名]
FROM [表名]
WHERE [列名]=[值]

LIKE(相似)運算符

WHERE c_name LIKE '王%'
“%”號表示任意字符串
使用該語句就可以查詢到所有姓王的人

IN (匹配) 運算符

WHERE name IN('張三','李四','王五')
姓名name與括號內任意一項相同都可以被查詢到

BETWEEN 運算符

WHERE price BETWEEN 100 AND 200
價格在100和200之間的所有數據項都可以被查詢到

ORDER BY (排序規則)

SELECT *
FROM tablename
ORDER BY name DESC,price ASC  --先按照name降序排列,如果name相同再按照price升序排列,依次類推(默認升序排列)
DESC:降序排列
ASC:升序排列
如果有WHERE語句,ORDER BY 語句應該放在其後面。

GROUP BY (聚合)

SELECT c_name,SUM(score)
FROM scores
GROUP BY c_name
以上表示查詢name相同的score和,即每個人的總分,要聚合顯示的列必須跟在GROUP BY 後面
使用GROUP BY 子句時,必須要使用聚合函數

聚合函數

聚合函數一般和GROUP BY 子句配合使用
SUM(求和),AVG(平均值),MIN(最小值),MAX(最大值)

COUNT(*)
SELECT g_Discount, COUNT(*)
FROM Goods
GROUP BY g_Discount
查詢g_Discount列相同值得總數
聚合函數會忽略null值,如果使用聚合函數的那列有null值,那麼那一項數據就不會加以計算,
大家一定要小心喲,只有下列情況不會忽略
SELECT COUNT(*)
FROM tablename
返回這個表總共有多少條數據

HAVING

SELECT c_name, SUM(score)
FROM tablename
GROUP BY c_name
HAVING COUNT(*)>=200
當你條件中想使用“聚合”的結果時就必須使用該子句
比如你想查詢總分大於等於200的學生的姓名

DISTINCT

SELECT DISTINCT c_name 
FROM tablename

去除重複行
發佈了41 篇原創文章 · 獲贊 14 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章