走近mysql运算符|靠它就够啦

比较运算符的使用

等号运算符

= 判断等号两边的值,字符串或表达式是否相等,如果相等则返回1,不相等则返回0.
需要遵守如下规则:
1.如果等号两边都为字符串,则Mysql会按照字符串进行比较,其比较的是每个字符的ANSI编码是否相等。
2.如果等号两边都是整数。则会按照两个整数的值来比较大小。
3.如果等号两边一个是整数,一个是字符串,则Mysql会将·字符串转换成数字进行比较。
4.如果等号两边有一个为NULL,则比较结果为NULL

SELECT 1=21=2,1='a',0='a'
FROM DUAL;

结果为: 0,1,0,1
字符串存在隐式转换,如果数值转化不成功,则看作0

SELECT 'a'='a''as'='as','d'='a'
FROM DUAL;

结果为:1,1,0

SELECT '1'=NULLNULL=NULL
FROM DUAL;

结果为:NULL,NULL

<=>安全等于

和=一样,除了当为NULL时,唯一区别可以对NULL进行判断
在两个操作数均为NULL时,其返回值为1,而不为NULL
当一个操作数为NULL时,其返回值为0,而不为NULL

SELECT '1'=NULLNULL=NULL
FROM DUAL;

结果为:0,1

不等于运算符<>/!=

用于判断两边的字符串,数字,表达式的值是否不相等。如果不相等则返回一,相等则返回0.
不等运算符不能判断NULL值,当任意一边出现NULL或者都是NULL时,返回值都是NULL

非符号类型的运算符

IS NULL 为空运算符判断值,字符串,表达式是否为空
IS NOT NULL 不为空运算符判断值,字符串,表达式是否不为空
LEAST 最小值运算符在多个值中返回最小值
GREATEST最大值运算符在多个值中返回最大值
BETWEEN AND 两值之间的运算符判断一个值是否在两个值之间
ISNULL 为空运算符判断一个值,字符串,表达式是否为空
IN 属于运算符判断一个值是否为列表中的任意一个值
NOT IN不属于运算符判断一个值是否不是一个列表中任意一个值
LIKE 模糊匹配运算符判断一个值是否符合模糊匹配规则
PEGEXP 正则表达式运算符判断一个值是否符合正则表达式的规则
RLIKE 正则表达式判断一个值是否符合正则表达式的规则

比如

BETWEEN AND

在使用时,要注意上下限问题(包含边界值)

SELECT age
FROM empolyees
WHERE  age BETWEEN 10 AND 20;
#或者 WHERE  age NOT BETWEEN 10 AND 20;
#WHERE  age BETWEEN 100 AND 20; 错误写法

IN

查询年龄为10或20的员工信息

SELECT age
FROM empolyees
#方法一:WHERE  age=10 OR age=20;
#方法二:WHERE  age IN(10,20);
WHERE  age NOT IN(10,20);#查询年龄不是10,20的员工信息

LIKE

查询名字为‘a’的员工信息·

SELECT name
FROM empolyees
WHERE  name LIKE 'a';

查询名字中包含字符;‘a’的员工信息
% 代表有不确定个数的字符
%a%代表前面后面都有不确定个数的字符

SELECT name
FROM empolyees
WHERE  name LIKE '%a%';

查询名字中包含字符‘a’和‘w’的员工信息

SELECT name
FROM empolyees
#方法一:
WHERE  name LIKE '%a%' AND LIKE '%w%';
#方法二:
WHERE  name LIKE '%a%e%' OR name LIKE '%e%a%';

_代表一个不确定的字符
查找第二个字符为a的员工信息

SELECT name
FROM empolyees
WHERE  name LIKE '_a%';

如果当_就是要查找的字符时,要用到转义字符 \

查找第二个字符为_,而且第三个字符为a 的员工信息

SELECT name
FROM empolyees
WHERE  name LIKE '_\_a%';

用¥来充当转义字符

SELECT name
FROM empolyees
WHERE  name LIKE '_¥_a%' ESCAPE;

PEGEXP/ RLIKE

精准的来查询信息,其中有
请添加图片描述

逻辑运算符使用

运算符作用
NOT或!逻辑非
AND或&&逻辑与
OR逻辑或
XOR逻辑异或

注意:
OR与AND能一起使用,但是在使用时要注意两者之间的优先级关系。
AND的优先级高于OR,因此在运算时,先对AND进行运算,得到的结果再与OR进行运算

位运算符

位运算符是在二进制数上进行计算的运算符。位运算符会先将操作数变为二进制数,然后进行位运算,最后将计算结果从二进制变回十进制

运算符作用
&按位与(位AND)
直线(语法问题,无法输入)按位或(位OR)
^按位异或(位XOR)
~按位取返
>>按位右移
<<按位左移

此外如果大家有购书需求,欢迎大家考虑一下清华社,直接以最低的价格买到最好的书!

详情链接描述

在这里插入图片描述
清华社 IT BOOK 多得图书活动开始啦!活动时间为 2023 年 6 月 7 日至 6 月 18 日,\n清华社为您精选多款高分好书,涵盖了 C++、Java、Python、前端、后端、数据库、算法与机器学习等多个 IT 开发领域,适合不同层次的读者。全场 5 折,扫码领券更有优惠哦!\n快来京东点击链接 IT BOOK 多得(或扫描京东二维码)查看详情吧!

  • 89
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 137
    评论
评论 137
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洁洁!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值