SQL 学习笔记:正则表达式 REGEXP(正则)

一、正则 语法

-- MySQL
SELECT * FROM t WHERE col REGEXP '^A[0-9]+$';
-- Oracle
SELECT * FROM t WHERE REGEXP_LIKE(col, '^A[0-9]+$');

二、参数说明

项目说明
REGEXPMySQL 正则匹配(同义词 RLIKE)
REGEXP_LIKEOracle 正则函数:REGEXP_LIKE(col, pat)
正则元字符^ 开头 $ 结尾 [] 字符集 + * ? 量词
否定MySQL: col NOT REGEXP ...;Oracle: NOT REGEXP_LIKE(...)

三、注意事项

  • MySQL 用 REGEXP / RLIKE 运算符;Oracle 用 REGEXP_LIKE 函数,写法不同
  • 两边正则语法基本兼容(POSIX/PCRE 风格略有差异)
  • 正则比 LIKE 灵活,但大表无函数索引时性能较差

四、经典案例

案例1:MySQL 正则

MySQL 正则

案例2:Oracle 正则

Oracle 正则

案例3:否定匹配

否定匹配

五、小结

正则表达式 REGEXP是数据库操作中的基础而关键的用法,建议结合文中的示例表在 Oracle 与 MySQL 中分别动手验证,注意两者在自增、分页、正则等处的语法差异,做到融会贯通。

💬 0 评论

评论(0)

登录后发表评论。