資料庫 (三) -- 簡單 SQL 語句
阿新 • • 發佈:2021-07-11
資料庫 (三) --簡單 SQL 語句
排序
DISTINCT
去重,作用於所有列
SELECT DISTINCT vend_id FROM Products;
ORDER BY
/* 先按 prod_price 排序 */
/* 為每一列指定 DESC */
select prod_id,prod_price,prod_name from Products order by prod_price DESC,prod_id DESC;
過濾
WHERE
IN
指定範圍條件, WHERE 子句中用來指定要匹配值的清單的關鍵字,功能與 OR 相當
select prod_name from Products where vend_id in ('DLL01', 'BRS01) -- 等同於 where vend_id = 'DLLL01' or 'BRS01' order by prod_name;
NOT
SELECT prod_name
FROM Products
WHERE NOT vend_id = 'DLL01'
ORDER BY prod_name;
分組
GROUP BY
把查詢出的資料,具有相同值的行分到一起
HAVING
WHERE 在資料分組前進行過濾, HAVING 在資料分組後,使用 HAVING 時結合 GROUP BY
一般使用 WHERE 過濾之後,使用 GROUP BY 進行分組,再用 HAVING 刪除一些分組行
萬用字元
% 萬用字元
% 表示任何字元出現任意次數。可以匹配 0 個字元
SELECT user_name FROM User WHERE user_email LIKE 'b%@forta.com'
_ 萬用字元
只匹配單個字元,不能多也不能少
[] 萬用字元
匹配集合內的元素
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[JM]%'
ORDER BY cust_contact;
簡單函式
拼接 concatenate
返回 vend_name 和 vend_country 拼接後的結果
-- RTRIM 去除右空格
select Concat(RTRIM(vend_name), '(',RTRIM(vend_country),')')
from Vendors;
聚集函式
- AVG()
- COUNT()
- MAX()
- MIN()
- SUM()
集合操作
- UNION
- INTERSECT
- EXCEPT