首页 > 数据库 >Oracle 数据库中的函数REGEXP_LIKE

Oracle 数据库中的函数REGEXP_LIKE

时间:2024-08-17 14:51:25浏览次数:13  
标签:匹配 LIKE 示例 Oracle REGEXP WHERE SELECT

REGEXP_LIKE 是 Oracle 数据库中的一个函数,它用于基于正则表达式模式匹配字符串。这个函数非常强大,允许你执行复杂的字符串搜索和匹配操作,比标准的 LIKE 语句更加强大和灵活。

语法

REGEXP_LIKE(source_string, pattern [, match_parameter])
  • source_string:要进行模式匹配的源字符串。
  • pattern:正则表达式模式,用于匹配 source_string 中的文本。
  • match_parameter(可选):用于修改正则表达式匹配行为的参数。比如,'i' 表示不区分大小写。

示例

示例 1:基本的字符串匹配

假设我们有一个名为 employees 的表,里面有一个名为 email 的列,我们想找出所有以 “john” 开头的电子邮件地址。

SELECT *
FROM employees
WHERE REGEXP_LIKE(email, '^john');

注意:上面的示例可能无法正确工作,因为电子邮件地址中通常包含 “@” 符号。为了精确匹配,我们应该包含更多的字符,或者使用适当的电子邮件格式的正则表达式。

示例 2:使用正则表达式匹配电子邮件地址
SELECT *
FROM employees
WHERE REGEXP_LIKE(email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$');

这个正则表达式用于匹配大多数常见的电子邮件地址格式。

示例 3:不区分大小写的匹配

如果你想在不区分大小写的情况下进行匹配,可以使用 match_parameter 来指定 'i'

SELECT *
FROM employees
WHERE REGEXP_LIKE(name, 'john', 'i');

这会匹配所有在 name 列中包含 “john”(不区分大小写)的记录。

TESTUSER@FREEPDB1> col FIRST_NAME format a30
TESTUSER@FREEPDB1> col EMAIL format a30
TESTUSER@FREEPDB1> SELECT EMPLOYEE_ID,FIRST_NAME,EMAIL FROM employees@orcl_hr WHERE REGEXP_LIKE(email, '^SKING');

EMPLOYEE_ID FIRST_NAME                     EMAIL
----------- ------------------------------ ------------------------------
        100 Steven                         SKING


TESTUSER@FREEPDB1> SELECT EMPLOYEE_ID,FIRST_NAME,EMAIL FROM employees@orcl_hr WHERE REGEXP_LIKE(email,'^sking','i');

EMPLOYEE_ID FIRST_NAME                     EMAIL
----------- ------------------------------ ------------------------------
        100 Steven                         SKING
示例 4:使用量词

量词用于指定模式出现的次数。比如,匹配以 “abc” 开头,后面跟着至少一个 “x” 的字符串。

SELECT *
FROM some_table
WHERE REGEXP_LIKE(some_column, '^abcx+');

这里,+ 量词表示 “x” 必须至少出现一次。

结论

REGEXP_LIKE 函数是 Oracle 中一个非常有用的工具,用于执行复杂的字符串匹配和搜索操作。通过理解和应用正则表达式,你可以高效地查询和分析数据库中的数据。

标签:匹配,LIKE,示例,Oracle,REGEXP,WHERE,SELECT
From: https://blog.csdn.net/zxrhhm/article/details/141267925

相关文章

  • Oracle数据库中,MINUS是一个关键字
    在Oracle数据库中,MINUS是一个关键字,用于执行两个SELECT语句的差集操作。MINUS操作返回在第一个SELECT语句中出现但不在第二个SELECT语句中出现的所有行。换句话说,它会从第一个查询结果中减去第二个查询结果,只保留在第一个查询结果中存在而第二个查询结果中不存在的记录。基本用法......
  • [20240815]oracle21c环境变量ORACLE_PATH与SQLPATH(windows).txt
    [20240815]oracle21c环境变量ORACLE_PATH与SQLPATH(windows).txt--//我记忆以前测试过这个问题,当时是家里的笔记本,安装oracle12.2cforwindows.OS:windows7,发现无法访问SQLPATH或者--//ORACLE_PATH环境变量定义的路径下login.sql文件.我当时解决办法就是登录手工执行init.sq......
  • [20240816]oracle21c环境变量ORACLE_PATH与SQLPATH(linux).txt
    [20240816]oracle21c环境变量ORACLE_PATH与SQLPATH(linux).txt--//我记忆以前测试过这个问题,当时是家里的笔记本,安装oracle12.2cforwindows.OS:windows7,发现无法访问SQLPATH或者--//ORACLE_PATH环境变量定义的路径下login.sql文件.我当时解决办法就是登录手工执行init.sql......
  • [20240814]oracle 21c NLS_DATE_FORMAT设置问题(整理版本1).txt
    [20240814]oracle21cNLS_DATE_FORMAT设置问题(整理版本1).txt--//朋友遇到的问题,请求远程协助解决问题:--//执行sqlplus出现如下错误:SQL*Plus:Release21.0.0.0.0-ProductiononSatAug1011:38:062024Version21.3.0.0.0Copyright(c)1982,2021,Oracle. Allrightsr......
  • Oracle数据文件分析
    一、准备工作1.环境介绍数据库版本:Oracle11.2.0.4工具:bbed2.数据库创建测试环境createtablespacetest_tbsdatafile'/u01/app/oracle/oradata/ora11g/test_tbs01.dbf'size10Mautoextendon;createuserlouisidentifiedby123defaulttablespacetest_tbs;......
  • Oracle优化二则
    一、准备工作1.环境介绍数据库版本:Oracle11.2.0.4工具:bbed2.数据库创建测试环境createtablespacetest_tbsdatafile'/u01/app/oracle/oradata/ora11g/test_tbs01.dbf'size10Mautoextendon;createuserlouisidentifiedby123defaulttablespacetest_tbs;......
  • oracle存儲過程掉用HTTP接口
    CREATEORREPLACEPROCEDUREFSMT.P_GET_HTTP_RES/*描述:存儲過程掉用HTTP接口作者:Janus日期:2024-08-15*/(M_DOC_NOINVARCHAR2,  M_DOC_TYPEINVARCHAR2, M_STANDBYINVARCHAR2,  M_EMPINVARCHAR2,  RES......
  • oracle练习2024.08.15
    --1.创建一个名为‘EMP_DETAILS_VIEW’的只读视图,包含各个员工的员工编号、员工名、职位编号、职位名称、部门编号、国家信息和区域信息:createviewemp_details_viewasselect   e.employee_idasemployee_id,  e.first_name||''||e.last_nameasemployee......
  • F.regexp_replace
     F.regexp_replace是PySpark中用于在DataFrame的列中执行正则表达式替换操作的函数。它可以用来匹配字符串中的某些模式,并用指定的字符串替换这些模式。使用场景清理数据中的特定字符或模式(如去除特殊字符、替换特定的子字符串)。标准化数据格式(如替换日期格式、移......
  • 成为MySQL DBA后,再看ORACLE数据库(十四、统计信息与执行计划)
    一、前言一条SQL到达数据库内核之后,会解析为一条逻辑执行计划,CBO优化器对逻辑计划进行改写和转换,生成多个物理执行计划。为SQL构造出搜索空间,根据数据的统计信息、基数估计、算子代价模型为搜索空间中的执行计划估算出执行所需要的代价(CPU、内存、网络、I/O等资源消耗),最终选出代......