MySQL常见的运算符主要分为以下几大类:
算术运算符比较运算符逻辑运算符位操作运算符
算术运算符
算术运算符图解
#示例:
#创建表
CREATE TABLE test ( num INT(11));
#插入数据
INSERT INTO test VALUE(100);
#使用各种运算符进行计算
SELECT num,num+10,num-9,num*8,num/7,num%6,num/0,num%0 FROM test;
示例图解
比较运算符
比较运算符图解
比较运算符之=,<=>的区别
<=>可以用于比较null
# 示例 = :
SELECT 1=0,'2'=2,'0.03'=0.03,'b'='b',(10+5)=(9+6),NULL=NULL;
示例图解
#示例 <=>:
SELECT 1<=>0,'2'<=>2,'0.03'<=>0.03,'b'<=>'b',(10+5)<=>(9+6),NULL<=>NULL;
示例图解
# 其他常见的比较运算符>,>=,
# 注意:NULL不可以用来比较
# 示例
SELECT 2!=2,2<>2,2<2,2>2,2<=2,2>=2,2!=NULL,2=NULL;
示例图解
# 判断是否为NULL的运算符
# 示例
SELECT NULL IS NULL,ISNULL(NULL),ISNULL(100),100 IS NOT NULL;
示例图解
#运算符BETWEEN AND
#示例
SELECT 2 BETWEEN 1 AND 3, 2 BETWEEN 2 AND 4, 2 BETWEEN 3 AND 5;
示例图解
#返回多个参数的最小值LEAST,最大值GREATEST
#示例
SELECT LEAST(1,2,3),LEAST('a','b','c'),LEAST(NULL,10),GREATEST(1,2,3),GREATEST('a','b','c'),GREATEST(NULL,10);
示例图解
# 包含IN,不包含NOT IN,NULL不能比较
# 示例
SELECT 1 IN (1,2,3), 'b' IN ('a','b','c'),NULL IN (1,2,3),1 IN (1,2,NULL),1 NOT IN (1,2,3), 'b' NOT IN ('a','b','c'),NULL NOT IN (1,2,3),1 NOT IN (1,2,NULL);
示例图解
# LIKE字符匹配
# %匹配任何数目字符,
# _只匹配一个字符
# 示例
SELECT 'apple' LIKE 'a%','apple' LIKE '%e','apple' LIKE '%p%','apple' LIKE 'a','apple' LIKE NULL;
示例图解
#REGEXP正则表达式
# 示例
SELECT 'apple' REGEXP '^a','apple' REGEXP 'e$','apple' REGEXP '.pple','apple' REGEXP '[bcd]';
示例图解
逻辑运算符
详解
与:都非0,返回1
或:一方非0,返回1
异或:有NULL值返回NULL,同时是0或同时非0,返回0,否则返回1
逻辑运算符图解
#示例
SELECT NOT 10,NOT 2-2,NOT NULL,NOT 1+1,1 AND -1,1 && 0,1 AND NULL,1 OR 0, 1 || 0 ,0 OR NULL,1 XOR 1, 1 XOR 0,1 XOR NULL;
示例图解
位运算符
详解
1010(10的二进制),1111(15的二进制)
位或运算 1111
位与运算是 1010
位异或运算是0101
二进制0001(1)左移两位,0100(4)
二进制0001(1)右移一位0000(0)
位运算符详解
#示例
SELECT 10|15,10&15,101<<2,1>>1;
示例图解
运算符的优先级详解
运算符优先级排序图解