当前位置: 欣欣网 > 办公

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、机器学习等电子书合集。

    关注我

    常进步