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

2023-10-10 14:08:52 浏览数 (1)

比较运算符的使用

等号运算符

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

代码语言:javascript复制
SELECT 1=2,1!=2,1='a',0='a'
FROM DUAL;

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

代码语言:javascript复制
SELECT 'a'='a','as'='as','d'='a'
FROM DUAL;

结果为:1,1,0

代码语言:javascript复制
SELECT '1'=NULL,NULL=NULL
FROM DUAL;

结果为:NULL,NULL

<=>安全等于

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

代码语言:javascript复制
SELECT '1'=NULL,NULL=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

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

代码语言:javascript复制
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的员工信息

代码语言:javascript复制
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’的员工信息·

代码语言:javascript复制
SELECT name
FROM empolyees
WHERE  name LIKE 'a';

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

代码语言:javascript复制
SELECT name
FROM empolyees
WHERE  name LIKE '%a%';

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

代码语言:javascript复制
SELECT name
FROM empolyees
#方法一:
WHERE  name LIKE '%a%' AND LIKE '%w%';
#方法二:
WHERE  name LIKE '%a%e%' OR name LIKE '%e%a%';

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

代码语言:javascript复制
SELECT name
FROM empolyees
WHERE  name LIKE '_a%';

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

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

代码语言:javascript复制
SELECT name
FROM empolyees
WHERE  name LIKE '__a%';

用¥来充当转义字符

代码语言:javascript复制
SELECT name
FROM empolyees
WHERE  name LIKE '_¥_a%' ESCAPE ¥;
PEGEXP/ RLIKE

精准的来查询信息,其中有

逻辑运算符使用

运算符

作用

NOT或!

逻辑非

AND或&&

逻辑与

OR

逻辑或

XOR

逻辑异或

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

位运算符

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

运算符

作用

&

按位与(位AND)

直线(语法问题,无法输入)

按位或(位OR)

^

按位异或(位XOR)

~

按位取返

>>

按位右移

<<

按位左移

0 人点赞