SELECT 是資料庫操作最高頻指令,掌握進階篩選技巧能精準取得所需資料集。
emp| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
|---|---|---|---|---|---|
| 100001 | 紅楓 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 麗鵑 | 27 | 8000 | 1979-12-31 | fmale |
| 100005 | 嘯天 | 27 | 4000 | 1979-07-10 | male |
-- 1979-12-01 前出生,薪資 > 5000
SELECT * FROM emp
WHERE emp_bir < '1979-12-01' AND emp_sal > 5000;
-- 結果:紅楓 (1977-01-01, 9000)
-- 1978-01-01 後出生
SELECT * FROM emp WHERE emp_bir > '1978-01-01';
-- 結果:嘯天 (1979-07-10)、麗鵑 (1979-12-31)
-- 薪資 > 5000
SELECT * FROM emp WHERE emp_sal > 5000;
-- 結果:紅楓、麗鵑
-- 姓名 = '嘯天'
SELECT * FROM emp WHERE emp_name = '嘯天';
-- 結果:嘯天
WHERE name LIKE '張%'(前綴可用索引)、WHERE name LIKE '%強%'(前導萬用字元不可用索引)。WHERE dept_id IN (1,3,5) 優於多個 OR。WHERE col IS NULL / IS NOT NULL(= NULL 永遠為 FALSE)。LIMIT offset, count(如 LIMIT 20, 10 取第 21-30 筆)。ORDER BY col1 DESC, col2 ASC。SELECT DISTINCT col FROM ...。WHERE 條件欄位建立適當索引(EXPLAIN 驗證 type=ref/range)。SELECT *,僅取需要欄位(減少網路傳輸、覆蓋索引機會)。WHERE id > last_id ORDER BY id LIMIT N)。