MySQL DAY5 运算符、关键字

一.算术运算符

1.Java中 + 一是加法作用 ,二是连接作用,数+数 时+是加法,数+字符 时+是连接符,如100+‘1’=1001;

SQL中+只表示加法运算,若遇到+字符,会将字符串转换为数值(隐式转换),若转不了,则按0处理,

如1+‘1’=2,1+‘a’=1

2.若分母为0,则结果为null

3.取模:被模数%模数,结果的正负号与被模数一致,与模数无关

二.比较运算符

1.等于= ,数比较字符串存在隐式转换,即若有 1 = ‘1’,会自动把字符1转成整型1,如果转换数值不成功,则把需转换字符看作0;字符串比较字符串则不隐式转换,直接比较字符。

只要有null参与判断,结果就为null;null = null,结果也返回null

2.安全等于<=>,与=的唯一区别是可以对null进行判断,两个操作数均为null则返回1,只有一个操作数为null则返回0,为null而生

三.具体关键字

1.NULL判断:

1.关键字:IS NULL为空,和<=>null同理

2.关键字:IS NOT NULL

3.函数:ISNULL()

2.最大最小判断:

1.最大函数:GREATEST();SELECT GREATEST(1,2,3) FROM DUAL; 3

2.最小函数:LEAST()SELECT LEAST(first_name,last_name) FROM employees; #选取first_name和last_name比较排序小的

3.取区间:

BETWEEN 条件下界 AND 条件上界 #前小后大

例:SELECT salary

FROM employees

WHERE salary BETWEEN 6000 AND 8000; #包含边界值

#或写成WHERE salary >=6000 && salary <=8000;

同理有 NOT BETWEEN ... AND ...

4.在与不在:

IN和NOT IN

例:SELECT last_name

FROM employees

WHERE department_id IN (10,20,30);

#或写成WHERE department_id = 10 || department_id=20 || department_id=30;

5.模糊查询:

LIKE

例:SELECT last_name

FROM employees

WHERE last_name LIKE '%a%'; #查询last_name中包含字符'a'且不论a或A的员工信息;

# %:代表不确定个数字符,若改成 'a%' 则是以a或A开头的员工信息

_ :一个下划线代表一个不确定的字符

例:WHERE last_name LIKE '_a%'; #查询last_name中第二个字符是'a'且不论a或A的员工信息;

\ :转义字符

例:WHERE last_name LIKE '_\_a%'; #查询last_name中第二个字符是_且第三个字符是a的员工信息; #\代表第二个_不再表示一个不确定字符而单纯表示下划线

6.正则表达式:

REGEXP / RLIKE:

1.^ 匹配以该字符后面的字符开头的字符串

2.$ 匹配以该字符前面的字符结尾的字符串

3. . 匹配任何一个单字符

4.[...]匹配在方括号内的任何字符:[abc]匹配有a或b或c,[a-z]匹配任何字母

5.* 匹配零个或多个在它前面的字符,如x*匹配任意多个x,[0-9]*匹配任何数量的数字

例:SELECT 'test' REGEXP '^t' ,'test' REGEXP 't$' FROM DUAL; 返回1 , 1

猜你喜欢

转载自blog.csdn.net/m0_73249076/article/details/129311078