當前位置: 妍妍網 > 辦公

SQL | 終於有人把正規表式說清楚了!

2024-04-01辦公

點選藍字 · 關註我們

大家好,我是Bryce~

你知道,下面的SQL語句表示什麽意思嗎?

SELECT *
FROM t1
WHEREnameRLIKE'^[a-zA-Z]+$'

表示找出純英文字母的 name ,這裏面涉及到SQL中的正則匹配,學好了正規表式,很多尋找匹配問題就so easy了。

本文讓你輕松搞懂正規表式,文末還有常見的正規表式分享。

1. 基本介紹

1.1 功能簡介

RLIKE正規表式是SQL中用於模式匹配的操作符之一,使用正規表式來搜尋和匹配資料庫中的文本數據。

1.2 語法簡介

RLIKE操作符的語法如下:

SELECT column_name
FROM table_name
WHERE column_name RLIKE'pattern';

其中, column_name 表示要從中進行匹配的列名, table_name 表示要從中查詢數據的表名, pattern 是使用者提供的正規表式模式。

1.3 運算式及說明

2. 使用範例

以下各小節使用的原始數據如下:

ID Name
1 Apple
2 Banana
3 Orange
4 Pineapple
5 Apricot
6 Avocado
7 Kiwi
8 Guava
9 Almond
10 Grapefruit

2.1 匹配以特定字串開頭的值

樣例程式碼:

SELECT * FROM fruits WHERENameRLIKE'^[A-G]';

結果展示:

ID Name
1 Apple
2 Banana
5 Apricot
6 Avocado
8 Guava
9 Almond
10 Grapefruit

結果說明:

該查詢使用RLIKE操作符來搜尋以字母 A G 開頭的水果名稱。

2.2 匹配以特定字串結尾的值

樣例程式碼:

SELECT * FROM fruits WHERENameRLIKE'e$';

結果展示:

ID Name
1 Apple
3 Orange
4 Pineapple

結果說明:

該查詢使用RLIKE操作符來尋找以字母 e 結尾的水果名稱。

2.3 匹配包含指定字串的值

樣例程式碼:

SELECT * FROM fruits WHERENameRLIKE'an';

結果展示:

ID Name
2 Banana
3 Orange

結果說明:

該查詢使用RLIKE操作符來搜尋包含字串 an 的水果名稱。

2.4 匹配包含特定長度字串的值

樣例程式碼:

SELECT * FROM fruits WHERENameRLIKE'^.{6}$';

結果展示:

ID Name
2 Banana
3 Orange
9 Almond

結果說明:

該查詢使用RLIKE操作符來尋找名稱長度為 6個字元 的水果。

3. 常用用法

3.1 校驗數位的運算式

  • 檢查是否為n位數位:'^\d{n}$'

  • 檢查是否為非零的正整數:'^[1-9]\d*$'

  • 檢查是否為浮點數:'^(-?\d+)(.\d+)?$'

  • 檢查是否為負整數:'^-\d+$'

  • 檢查是否為正整數或浮點數:'^\d+(.\d+)?$'

  • 檢查是否為正數:'^[1-9]\d*|0$'

  • 檢查是否為非負整數:'^\d+$'

  • 檢查是否為非負浮點數:'^\d+(.\d+)?$'

  • 3.2 校驗字元的運算式

  • 檢查是否為漢字:'^[\u4e00-\u9fa5]+$'

  • 檢查是否為英文和數位:'^[A-Za-z0-9]+$'

  • 檢查是否為純英文字母:'^[a-zA-Z]+$'

  • 檢查是否為大寫英文字母:'^[A-Z]+$'

  • 檢查是否為小寫英文字母:'^[a-z]+$'

  • 3.3 特殊需求運算式

  • 信箱地址:'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$'

  • 手機號碼:'^\d{11}$'

  • IP地址:'^\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$'

  • URL地址:'^(http|https)://[\w-]+(.[\w-]+)+([\w.,@?^=%&:/+#-]*[\w@?^=%&/+#-])?$'

  • 4. 註意事項

  • 使用RLIKE操作符時要註意效能問題,特別是對於大型數據集的查詢。

  • 需要了解資料庫的正規表式支持情況,以免出現相容性問題。


  • 以上就是本次分享的全部內容。我是Bryce,我們下期見~

    你好!我是Bryce,大廠數據分析師,數據模型大賽一等獎獲得者,比例1%。連續兩年晉升漲薪,目前是某計畫數據業務負責人。持續分享數據分析、AI編程、AI辦公等文章,我們一起擁抱變化、一起精進。

    關註下方公眾號,回復【數據分析書籍】,即可獲取SQL、Python、機器學習等電子書合集。

    關註我

    常進步