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