SQL 常用述詞


述詞(Predicate)是一個特殊的函式,其回傳值為是/否(TRUE/FALSE),常用於搭配 WHERE 過濾資料時使用。述詞也是 SQL 語法中常使用到的工具。我們接下來介紹幾個 SQL 常用述詞。

數值比較

數值比較主要用在條件過濾上,例如:相等 =SQLiteMySQL 可以使用) 或 ==SQLite 可以使用)、不等於 <>!=、大於 >、大於等於 >=、小於 <、小於等於 <=NOT 否定。

LIKE 字串搜尋比較

LIKE 用來比對字串是否為想要查詢的資料,後面接 % 加上比對字串,% 可以想成是代表任何字串的意思。根據比對字串資料的定義規則分為:

  1. 開頭相同
  2. 中間相同
  3. 結尾相同

語法:

/* 開頭相同 */
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


問題討論區
加入問題討論
作業任務區
提交作業任務