
運算子的優先順序
優先順序 | 運算子 |
1 | *、/、% |
2 | +、- |
3 | =、>、>=、<、<=、<>、!= |
4 | &、|、^、~ |
5 | NOT |
6 | AND |
7 | BETWWEN、IN、LIKE、OR |
「%」萬用字元應用
說明:
LIKE 透過「%」萬用字元有三種常用用法:
1.透過xxx開頭:LIKE'xxx%'
2.xxx在字串中:LIKE'%xxx%'
3.xxx在字尾:LIKE'%xxx'
「_」萬用字元
說明:
「_」萬用字元是一個匹配單一字元的萬用字元,「%」萬用字元是可以匹配零至多個的字元,但是「_」萬用字元僅僅只能匹配一字,是相當嚴格。
例如:
價格要搜尋三位數的字串時,可能就會透過
語法(price LIKE'___') 三個_
以下則是搜尋商品名稱有5個字元的資料
select * from store where name LIKE'_____'; 五個_
欄位別名
語法:
欄位 別名
範例:
SELECT name,weight/((height/100)*(height/100)) BMI FROM student
篩選 name 跟 BMI(是由方程式欄位設別名為BMI)從 student 資料表出來。
指定遞增、遞減排序
語法:
ORDER BY (指定欄位) (ASC遞增/DESC遞減)
指定多欄位排序
語法:
ORDER BY (指定欄位) (ASC/DESC),
(指定欄位) (ASC/DESC)
多個欄位的排序首先對指定的第一個欄位來進行排序,再對下一個指定的欄位進行排序,依此類推。

將資料輸出以群組化彙總
SQL不僅僅提供查詢計算的功能,也能夠將資料表特定欄位內的值群組進行彙總。群組化的意思是將欄位內相同的值集合起來分為各個群組,並且將各個群組進行彙總。
語法:
指令為 GROUP BY
SELECT * FROM (資料表) GROUP BY (指定欄位)
範例:
SELECT * FROM store GROUP BY class

範例:
SELECT class, count(*), sum(price), sum(cost)
FROM store GROUP BY class;

將群組化資料設定條件
HAVING 的使用語法如下:
SELECT * FROM (資料表) GROUP BY (指定欄位)
HAVING (指定條件)
範例:
SELECT class, count(*),sum(price), sum(cost)
FROM store GROUP BY class;
若加上HAVING一起使用:
SELECT class, count(*),sum(price), sum(cost)
FROM store GROUP BY clas
HAVING count(*)>2;

在SQL中HAVING與WHERE這個兩個指令的差異是不是不大?是否覺得為何不用WHERE就足夠了?其實WHERE跟HAVING的差別在於WHERE是用於GROUP BY之前,因此就無法GROUP BY之後的結果來進行判斷。所以無論如何在GROUP BY後要進行資料判斷時,一定要使用HAVING指令。