SQL 語法筆記
選擇、查詢及條件
一般選擇
SELECT <column_name>, <column_name2>, ... FROM <table_name>;
- From 後面可以接另外一個查詢字串,不一定要
table_name
不重複選擇
SELECT DISTINCT <column_name>, <column_name2>, ... FROM <table_name>;
- 你可以用
COUNT()
來數不重複項目的數量
# 通用寫法
SELECT COUNT(*) AS <CustomName> FROM (SELECT DISTINCT <column_name>, <column_name2>, ... FROM <table_name>);
# 非Access才可以用的寫法
SELECT COUNT(DISTINCT <column_name>, <column_name2>, ...) FROM <table_name>;
過濾結果
使用 WHERE
SELECT <column_name> FROM <table_name> WHERE <condition>;
e.g:
SELECT * FROM Customers
WHERE CustomerID > 80;
- 你可以用
=
、<
、>
、<=
、>=
、<>
(不等於)作為條件判斷 - 條件後面接
BETWEEN
相當等於>=
和<=
的組合,例如BETWEEN 50 AND 60
- 條件後面接
LIKE
則是用於找 pattern,例如LIKE s%
等於「找出以 s 為開頭的的字串」 - 條件後面接
IN
則是用於找至少已知的一組資料,例如IN("Los Angeles", "San Diego")
就是在找所選條件裡面包含Los Angeles
或San Diego
的資料 - 可以串連多個
AND
或OR
或NOT
來取得符合條件的資料(混用的話記得用括弧分開) -
NOT
加在任何條件前面,包含BETWEEN
、LIKE
或IN
,可以得到相反的結果
排序
SELECT <column_name>, <column_name2>, ... FROM <table_name>
ORDER BY <column_name>, <column_name2, ... ASC|DESC;
- 可以根據數字、字母進行排序
- 可以多欄進行排序,排序順序優先序由左至右
- 可以用
ASC
、DESC
表示順向或逆向排序 - 多欄排序狀況下,個別欄位可以指定不同的順逆向排序 (如
ORDER BY <column_name> ASC, <column_name2> DESC