限制數據和對數據排序
限制數據和對數據的排序是數據庫操作中非常常用的。對於這塊內容需要達到如下目標:
- 理解限制數據和排序數據的作用;
- 掌握不同類型的數據的比較方法;
- 掌握where和order by的使用;
- 掌握特殊比較運算符的含義及用法;
- 掌握邏輯運算符的含義及用法;
where語句
限制數據的其中一部分是限定數據行,就是爲查詢語句添加條件語句-where語句通過使用where字句可以返回限定的數據行,語法格式如下:
SELECT[distinct]{*|column | expression[alias],…}
FROM table
[WHERE condition(s)];
condiction:表示條件表達式。
eg.select name,age from table where age > 50;查詢年齡(age)大於50的信息。
特殊比較運算符
運算符 | 含義 | 例句 |
---|---|---|
BETWEEN…AND.. | 判斷要比較的值是否在某個範圍中 | select * from table where age between 59 and 70;(查詢年齡的範圍在59到70的數據) |
IN(集合列表) | 判斷要比較的值是否和集合列表中的任何一個值相等 | select * from table where age in(59,70);(查詢年齡爲59或70的數據) |
LIKE | 判斷要比較的值是否滿足部分匹配。 | select name from table where name like ‘J%’;(查詢姓名第一個字母’J’的數據) |
IS NULL | 判斷要比較了值是否爲空值NULL | select name,salary from table where salary is null;(查詢工資爲空的數據) |
邏輯運算符
前面已經學習瞭如何書寫一個表達式,但如果需要查詢的條件是:查詢年齡大於50,並且工資不低於的6000的信息。像這樣兩個或多個限制數據的條件就需要使用邏輯運算符連接。具體連接符如下:
運算符 | 含義 | 例句 |
---|---|---|
AND | 邏輯與,用來連接多個條件表達式。如果每個條件表 達式的結果都爲TRUE,整個表達式的結果才爲TRUE。 | select * from table where age > 50 and salary >=6000;(查詢年齡大於50,並且工資不低於的6000的信息。) |
OR | 邏輯或,用來連接多個條件表達式。只要有1個條件表 達式的結果爲TRUE,整個表達式的結果就爲TRUE | select * from table where age > 50 or salary >=6000;(查詢年齡大於50,或者工資不低於的6000的信息。) |
NOT | 邏輯非,用來對條件表達式取反。TRUE取反爲FALSE ,FALSE取反爲TRUE。 | select * from table where NOT name like ‘J%’;(查詢姓名不是以‘J’開頭的信息) |
運算符的優先級
學習了各種運算符,那麼他們的優先級又如何呢。需要提出的是括號‘()’優先級高於其他操作符。其餘的如下表:
優先級 | 運算分類 | 運算符舉例 |
---|---|---|
1 | 算術運算符 | *,/,+,- |
2 | 連接運算符 | || |
3 | 比較運算符 | ==,<>,<,>,<=,>= |
4 | 特殊比較運算符 | BETWEEN…AND..,IN,LIKE,IS NULL |
5 | 邏輯非 | NOT |
6 | 邏輯與 | AND |
7 | 邏輯或 | OR |
ORDER BY字句
ORDER BY是對查詢的結果進行升降排序。語法如下:
SELECT [DISTINCT] {* | 列名 | 表達式[別名]…}
FROM 表名
[WHERE 條件]
[[ORDER BY {列名|表達式|列別名|列序號} [ASC|DESC],…]]
其中: –可以按照列名、表達式、列別名、結果集的列序號排序 –ASC: 升序,默認值DESC: 降序 –ORDER BY 子句必須寫在SELECT語句的最後。
eg.select * from table order by age;