MySQL筆記 3 過濾
阿新 • • 發佈:2021-01-02
SQL學習指南 筆記
1 條件型別
1.1 相等條件
SELECT pt.name product_type, p.name product
FROM product p INNER JOIN product_type pt
ON p.product_type_cd = pt.product_type_cd
WHERE pt.name = 'Customer Accounts'
1.2 範圍條件
SELECT emp_id, fname, lname, start_date
FROM employee
WHERE start_date < '2007-01-01';
between操作符
/*範圍的上下限是閉合的*/
SELECT emp_id, fname, lname, start_date
FROM employee
WHERE start_date BETWEEN '2002-01-01' AND '2003-01-01';
字串範圍
SELECT cust_id, fed_id
FROM customer
where cust_type_cd = 'I'
and fed_id BETWEEN '500-00-0000' AND '999-99-9999'
1.3 成員條件
/*有限值集合*/ SELECT account_id, product_cd, cust_id, avail_balance FROM account WHERE product_cd IN ('CHK','SAV','CD', 'MM');
使用子查詢
/*'CHK','SAV','CD', 'MM'的product_type_cd列都為'ACCOUNT' */
SELECT account_id, product_cd, cust_id, avail_balance
FROM account
where product_cd in (SELECT product_cd FROM product
WHERE product_type_cd = 'ACCOUNT');
1.4 匹配條件
select lname
from employee
where lname like '_a%e%'
使用正則表示式
/*lname以F或G打頭的*/ SELECT emp_id, fname, lname from employee WHERE lname REGEXP '^[FG]';
2 null:4個字母的關鍵字
使用null時,需要記住:
- 表示式可以為 null, 但不能等於 null
- 兩個 mill 值彼此不能判斷為相等
SELECT emp_id, fname, lname, superior_emp_id
FROM employee
WHERE superior_emp_id IS NULL;
/*不能等於 null*/
SELECT emp_id, fname, lname, superior_emp_id
FROM employee
WHERE superior_emp_id = NULL;
查詢所有不是 Helen Fleming (employee ID為6)所管理的僱員
SELECT emp_id, fname, lname, superior_emp_id
FROM employee
WHERE superior_emp_id != 6;
僱 員 Michael Smith ,他 的superior_emp_id 列為 null (因為他是銀行的高層人物)沒有列出來
SELECT emp_id, fname, lname, superior_emp_id
FROM employee
WHERE superior_emp_id != 6 OR superior_emp_id IS NULL;