每天學點SQL(009) LIKE/BETWEEN/IN/IS NULL 常見謂詞


視頻約120秒,關注收藏。


SQL 謂詞

SQL 中的謂詞指的是返回值是邏輯值的函數。我們知道函數的返回值可能是數字、字符串或者日期等等,但謂詞的返回值全部是邏輯值 (TRUE/FALSE/UNKNOW),謂詞是一種特殊的函數。

常見謂詞

每天學點SQL(009) LIKE/BETWEEN/IN/IS NULL 常見謂詞

每天學點SQL(009) LIKE/BETWEEN/IN/IS NULL 常見謂詞

LIKE 模糊查詢

<code>列名 LIKE 條件/<code>

其中關於條件,有四種匹配模式:

%: 表示任意0個或多個字符。可匹配任意類型和長度的字符。

_: 表示任意單個字符。匹配單個任意字符,它常用來限制表達式的字符長度語句。

[ ]: 表示括號內所列字符中的一個(類似正則表達式)。指定一個字符、字符串或範圍,要求所匹配對象為它們中的任一個。

[^ ]: 表示不在括號所列之內的單個字符。其取值和[]相同,但它要求所匹配對象為指定字符以外的任一個字符。

BETWEEN 範圍查詢

<code>列名 BETWEEN 左邊界 AND 右邊界/<code>

左邊界、右邊界,可以是表達式或者文字值,要求左邊界小於右邊界的值。

如果列名大於或等於左邊界且小於等於右邊界的值,則BETWEEN 返回TRUE,這樣相當於以下條件:

列名>= 左邊界 AND 列名 <= 右邊界。

IN / NOT IN 查詢

<code>列名 IN (值1, 值2, 值3…)
列名 NOT IN (值1, 值2, 值3…)/<code>

IN 用於值與一組值進行比較,如果值在值集內,則IN返回TRUE,否則返回FALSE或UNKNOW。

NOT IN 否定IN 的結果,如果值與值集內的任何值都不匹配,則NOT IN 返回TRUE,否則返回FALSE。

如果值集中的任何值為NULL,則運算符不返回任何行。

其中,IN 可以用OR 重寫,相當於 (列名 = 值1 OR 列名 = 值2 OR 列名 = 值3…)

NOT IN 可以用AND 重寫,相當於 (列名 != 值1 AND 列名 != 值2 AND 列名 != 值3…)

IS NULL / IS NOT NULL 查詢

<code>列名 IS NULL
列名 IS NOT NULL/<code>

NULL 可以表示數據未知的值,可以簡單理解為表示:不適用 或不存在的值。 NULL值是特殊的,因為任何與NULL 值的比較都不會導致TRUE 或 FALSE。

不能使用比較運算符的等於(=)將值與NULL值進行比較。

要確定列值是否為NULL,可以使用IS NULL,反之使用IS NOT NULL。

EXISTS 查詢

<code>EXISTS 子查詢/<code>

EXISTS 運算符用於指定子查詢以測試行的存在。如果子查詢包含任何行,則EXISTS運算符返回TRUE否則返回FALSE。EXISTS 運算符在找到行後立即終止查詢處理,因此,可以利用EXISTS 運算符合此功能來提高查詢性能。


每天學點SQL(009) LIKE/BETWEEN/IN/IS NULL 常見謂詞

798藝術區


常見謂詞使用示例

假設表名students包含以下幾個字段:

每天學點SQL(009) LIKE/BETWEEN/IN/IS NULL 常見謂詞

其中,各字段定義為:sid為學生ID、name為姓名、gender為性別,age為年齡,province為所在省份,city為所在城市,district為所在區 (NULL表示未上報)。

IN 示例

<code>SELECT sid, name, province
FROM students
WHERE province IN (‘山東省’, ‘湖北省’)/<code>

該語句查詢來自山東及湖北省學生信息。

每天學點SQL(009) LIKE/BETWEEN/IN/IS NULL 常見謂詞

IS NOT NULL 示例

<code>SELECT name, province, district
FROM students
WHERE province IN (‘山東省’, ‘湖北省’)
AND district IS NOT NULL/<code>

該語句查詢來自山東及湖北學生信息且區信息不為空。

每天學點SQL(009) LIKE/BETWEEN/IN/IS NULL 常見謂詞

BETWEEN 示例

<code>SELECT sid, name, age
FROM students
WHERE age BETWEEN 20 AND 23/<code>

該語句查詢年齡在20-23歲的學生信息。

每天學點SQL(009) LIKE/BETWEEN/IN/IS NULL 常見謂詞

LIKE 示例

<code>SELECT name, gender, age
FROM students
WHERE name LIKE ‘李%’/<code>

該語句查詢姓李的學生信息。

每天學點SQL(009) LIKE/BETWEEN/IN/IS NULL 常見謂詞


碎片時間,關注收藏。

往期視頻:

每天學點SQL(001) SELECT語句

每天學點SQL(002) DISTINCT語句

每天學點SQL(003) WHERE子句

每天學點SQL(004) AND 或 OR

每天學點SQL(005) ORDER BY語句

每天學點SQL(006) 聚合函數

每天學點SQL(007) GROUP BY 子句

每天學點SQL(008) JOIN 表連接


分享到:


相關文章: