述詞(Predicate)是一個特殊的函式,其回傳值為是/否(TRUE/FALSE),常用於搭配 WHERE
過濾資料時使用。述詞也是 SQL 語法中常使用到的工具。我們接下來介紹幾個 SQL 常用述詞。
數值比較
數值比較主要用在條件過濾上,例如:相等 =
(SQLite
和 MySQL
可以使用) 或 ==
(SQLite
可以使用)、不等於 <>
或 !=
、大於 >
、大於等於 >=
、小於 <
、小於等於 <=
、NOT
否定。
LIKE 字串搜尋比較
LIKE 用來比對字串是否為想要查詢的資料,後面接 %
加上比對字串,%
可以想成是代表任何字串的意思。根據比對字串資料的定義規則分為:
- 開頭相同
- 中間相同
- 結尾相同
語法:
/* 開頭相同 */
LIKE 比對字串%
/* 中間相同 */
LIKE %比對字串%
/* 結尾相同 */
LIKE %比對字串
範例語法:
/* 開頭相同 */
SELECT name
FROM products
WHERE name LIKE 'py%';
/* 中間相同 */
SELECT name
FROM products
WHERE name LIKE '%thon%';
/* 結尾相同 */
SELECT name
FROM products
WHERE name LIKE '%分析';
執行結果:
/* LIKE 'py%' */
python3 實戰
python 資料分析
/* LIKE '%thon%' */
python3 實戰
python 資料分析
/* LIKE '%分析' */
Java 資料分析
python 資料分析
IS NULL / IS NOT NULL
判斷 NULL 語法:
屬性 IS NULL
屬性 IS NOT NULL
範例語法:
SELECT name, category
FROM products
WHERE category IS NULL;
SELECT name, category
FROM products
WHERE category IS NOT NULL;
執行結果:
/* IS NULL */
Java 資料分析|
python 資料分析|
/* IS NOT NULL */
華速 intel i3 筆電|NB
Mac Pro 筆電|NB
微興電競筆電|NB
戈林冰箱|3C
三力冰箱|3C
C 語言入門|Book
python3 實戰|Book
JavaScript 英雄|Book
BETWEEN
判斷是否在區間語法(含頭尾):
BETWEEN 值_1 AND 值_2
範例語法:
SELECT name, category
FROM products
WHERE price BETWEEN 100 AND 1000;
執行結果:
C 語言入門|Book
python3 實戰|Book
JavaScript 英雄|Book
Java 資料分析|
python 資料分析|
IN、NOT IN
判斷是否為其中一值的語法(類似 OR
使用方式):
IN (值_1, 值_2, ...);
範例語法:
SELECT name, category
FROM products
WHERE category IN ('NB', 'Book');
SELECT name, category
FROM products
WHERE category NOT IN ('NB', 'Book');
執行結果:
/* IN ('NB', 'Book') */
華速 intel i3 筆電|NB
Mac Pro 筆電|NB
微興電競筆電|NB
C 語言入門|Book
python3 實戰|Book
JavaScript 英雄|Book
/* NOT IN ('NB', 'Book') */
戈林冰箱|3C
三力冰箱|3C