SQL模式匹配

标准的SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。下面显示一些例子。注意在你使用SQL模式时,你不能使用=或!=;而使用LIKE或NOT  LIKE比较操作符。

扩展正则表达式模式匹配

由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。

扩展正则表达式的一些字符是:

“.”匹配任何单个的字符。

一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。

“ * ”匹配零个或多个在它前面的东西。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。

正则表达式是区分大小写的,但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。

如果它出现在被测试值的任何地方,模式就匹配(只要他们匹配整个值,SQL模式匹配)。

为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。

为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:

你也可以使用“{n}”“重复n次”操作符重写先前的查询:

标准的SQL模式匹配是SQL语言的标准,可以被其它关系数据库系统接受。扩展正规表达式模式匹配是根据Unix系统的标准开发了,一般只可使用在MySQL上,但是其功能要比标准的SQL模式匹配更强。

时间: 2025-01-10 10:50:35

SQL模式匹配的相关文章

oracle -sql模式匹配

下面是条件 like与regexp_like条件 下面是函数 regexp_instr regexp_replace regexp_substr select * from tis_ft_user_infowhere  regexp_like (credential_number,'^5'); ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR

MySQL学习笔记之九 字符串模式匹配

我们在使用查询的时候,经常会碰到模糊条件查询,而模糊查询就涉及到了字符串模式匹配. 在这里,主要讲两个:标准的SQL模式匹配.扩展正则表达式模式匹配.     一.标准的SQL模式匹配 SQL的模式匹配允许你使用"_"匹配任何单个字符,而"%"匹配任意数目字符(包括零个字符).在MySQL中,SQL的模式缺省是忽略大小写的.下面显示一些例子.注意在你 使用SQL模式时,你不能使用=或!=:而使用LIKE或NOT LIKE比较操作符. 为了找出包含正好5个字符的名字,

《起 航 之SQL技能全掌握》下

目     录 八. 正则表达式 8.1. 正则表达式简介 8.2. Oracle Sql模式匹配函数 8.2.1. 模式匹配函数 8.2.2. 模式匹配选项 8.3. Oracle正则表达式中的运算符 8.3.1. POSIX运算符 8.3.2. Perl正则表达式扩展字符 8.3.3. 字符簇和含义 8.3.4. 操作符的运算优先级 8.4. 正则表达式实例 8.4.1. Regexp_like函数 8.4.2. Regexp_replace函数 8.4.3. Regexp_substr函数

sql mysql

日期计算 MySQL 有用来计算日期的函数,比如计算年龄或提取日期部分. 要想确定每个宠物有多大,可以使用函数TIMESTAMPDIFF()计算当前日期的年和出生日期之间的差也可以按照直接使用语句(YEAR(CURDATE())-YEAR(birth))计算,其中函数CURDATE()是计算当前的日期.如果当前日期的日历年比出生日期早,则减去一年.以下代码是查询每个宠物的出生日期.当前日期和年龄(以年作为计算单位),其中关键字age是年龄这个计算结果的标签. mysql> SELECT name

SQL中常用模糊查询的四种匹配模式&&正则表达式

执行数据库查询时,有完整查询和模糊查询之分.一般模糊语句如下:SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式:1.%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请运用两个百分号(%%)表示.比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'将会把u_name为“张三”,“张猫三”.“三脚猫”,“唐三藏”等等有“三”的记录全找出来.另外,如果须要找出u_name中

(大数据工程师学习路径)第五步 MySQL参考手册中文版----MySQL基本操作

一.创建并使用数据库 1.创建并选择数据库 使用SHOW语句找出服务器上当前存在什么数据库: mysql> SHOW DATABASES; 如果管理员在设置权限时为你创建了数据库,你可以开始使用它.否则,你需要自己创建数据库: mysql> CREATE DATABASE menagerie; 在Unix下,数据库名称是区分大小写的(不像SQL关键字),因此你必须总是以menagerie访问数据库,而不能用Menagerie.MENAGERIE或其它一些变量.对表名也是这样的.(在Window

mysql中的模糊查询

转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或RLIKE/NOT RLIKE,它们是同义词). 第一种是标准的SQL模式匹配.它有2种通配符:“_”和“%”.“_”匹配任意单个字符,而“%”匹配任意多个字符(包括0个).举例如下: SELECT * FROM table_name WHERE column_name LIKE ‘m%’; #查询

MySQL 通配符学习小结

MySQL 通配符 SQL的模式匹配同意你使用"_"匹配不论什么单个字符,而"%"匹配随意数目字符(包含零个字符).在 MySQL中,SQL的模式缺省是忽略大写和小写的.以下显示一些样例. 注意在你使用SQL模式时,你不能使用=或!=:而使用LIKE或NOT LIKE比較操作符. 为了找出以"b"开头的名字: mysql> SELECT * FROM pet WHERE name LIKE "b%"; +--------

MySql模糊查询like通配符使用详细介绍

MySql模糊查询like通配符使用详细介绍 转载:http://chenpeng.info/html/2020 MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi.grep和sed的扩展正则表达式模式匹配的格式. 一.SQL模式 SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符).在 MySQL中,SQL的模式缺省是忽略大小写的.下面显示一些例子.注意在你使用SQL模式时,你不能使用=或!=:而使用LIKE或NOT LIKE比较操作