12、條件查詢和排序
學習目標:
1、熟練掌握select語句的條件查詢
2、掌握Order By語法
學習過程:
前面的查詢都比較簡單,都是查詢全部的內容的,但是在現實生活中我們經常會需要查詢符合一些條件的資料,而不是每一次都是全部資料。比如如果我們只需要查詢工資在3000至5000之間員工,部門1的員工等等。這樣我們可以在基本的查詢語句後面通過where關鍵字新增查詢條件即可。基本格式如下:
select * from table [where conditions]
1、比較條件
可以使用的比較符合是等於=、大於>、小於
1 2 3 4 |
|
2、其它比較運算子
BETWEEN num1 AND num2 介於num1和num2之間
IN(set) 在一列資料中。
LIKE 模糊匹配
IS NULL 判斷是否是一個null值
Between two values (inclusive),
示例程式碼如下:
1 2 3 |
|
1 2 |
|
-- 查詢工資是1000,2000,3000的員工
select employee_name,salary, dep_id from employee where salary in(1000,2000,3000)
-- 查詢工資不是1000,2000,3000的員工
select employee_name,salary, dep_id from employee where salary not in(1000,2000,3000)
這裡重點講講like模糊查詢,這裡我們知道兩個特殊的符號。% 表示任意長字元
_ 表示一個字元
1 2 3 4 |
|
3、邏輯條件
AND:如果組合的條件都是TRUE,返回TRUE
OR:如果組合的條件之一是TRUE,返回TRUE
NOT:如果下面的條件是FALSE,返回TRUE
上面的判斷使用和java類似。如下面這個例子
1 2 |
|
4、優先順序
運算級預設從高到低的排列,當然其實也可以使用小括號改變運算的優先級別:
-
算術運算子
-
連線運算子
-
比較運算子
-
IS [NOT] NULL, LIKE, [NOT] IN
-
[NOT] BETWEEN
-
NOT 邏輯條件
-
AND邏輯條件
-
OR邏輯條件
5、排序order by
使用ORDER BY 子句將記錄排序
ASC: 升序,從小到大 預設
DESC: 降序,從大到小
ORDER BY 子局在SELECT指令的最後
select * from table [where conditions] [order by column1 asc|desc,column2 asc|desc]
如下面這個例子
1 2 3 4 |
|
和where語句一起使用
select employee_name, dep_id from employee
where salary in(1000,2000,3000)
order by salary desc