一、正则表达式
MySQL,正则表达式通常是在检索数据库记录的时候,根据指定的匹配模式匹配记录中符合要求的特殊字符串。MySQL的正则表达式使用 REGEXP这个关键字来指定正则表达式的匹配模式,REGEXP(打印)操作符所支持的匹配模式如表所示。
匹配 描述
^ 匹配文本的开始字符
$ 匹配文本的结束字符
· 匹配任何单个字符
* 匹配零个或多个在它前面的字符
+ 匹配前面的字符1 次或多次
字符串 匹配包含指定的字符串
p1|p2 匹配 p1 或p2
[...] 匹配字符集合中的任意一个字符
[^...] 匹配不在括号中的任何字符
{n } 匹配前面的字符串n 次
{ n , rm } 匹配前面的字符串至少n次,至多m 次
查询以li开头的信息
mysql> select id,name from info where name regexp '^li';
查询以i为结尾的信息
mysql> select id,name from info where name regexp 'i$';
查询名字中包含an的信息
mysql> select id,name from info where name regexp 'an';
二、运算符
MySQL.的运算符用于对记录中的字段值进行运算。MySQL的运算符共有四种,分别是:算术运算符、比较运算竹、逻辑运算符和位运算符
1、算数运算符
以 select 命令来实现最基础的加减乘除运算,MySQL支持使用 的算数运算符,如表所示:
运算符 描述
+ 加法
- 减法
* 乘法
/ 除法
% 取余
在除法运算和求余数运算中,除数不能为0,若除数是0,返回的结果则为 NUJT…。需
要注意的是,如果有多个运算符,按照先乘除后加减的优先级进行运算,相同优先级的运算符没有先后顺序。
示例:
mysql> select 1+2,2-1,3*4,4/2,5%2;
2、比较运算符
比较运算符是查询数据记录时经常使用的一类运算符。通过使用比较运算符可以判断出表中有哪些记录是符合条件的,如果比较的结果为真则返回1,如果为假则返回0,比较的结果如果不确定则返回
NULL。其中字符串在进行比较的时候默认是不区分大小写的,如果要区分大小写可以通过binary关键字来实现
运算符 描述
= 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
!=或<> 不等于
is null 判断一个值是否为NULL
Is NOT NULL 判断一个值是否不为NULL
BETWFEN AND 两者之间
IN 在集合中
LIKE 通配符匹配
GREATEST 两个或多个参数时返回最大值
LEAST 两个或多个参数时返回最小值
REGEXP 正则表达式
#等号(-)是用来判断数字、字符串和表达式是否相等的,如果相等则返回1,如果不相等则返回0。如果比较的两者有一个值是NOLL,则比较的结果就是NULL。其中字符的比较是根据 ASCII码来判断的,如果AsCII
码相等,则表示两个字符相同;如果AsCTT码不相等,则表示两个字符不相同例如字符串(字母)比较:( ‘a’>‘b’)其实比较的就是底层的AsCLl码
需要关注的是ascii码有:a、A、o ( 97、65、48)
那么:
如果比较的是多字符串,如: ‘abc’=‘acb’,如何比较(字符个数、字符顺序)如果比较的是多字符,如:‘abc’ <'baa’如何比较
与linux返回值表达相反,linux中运行正常返回值是0,运行异常返回值是非0
示例:
mysql> select 2=4,2=2,2='2','e'='e','r'=null;