04运算符


#1. 算术运算符:+ — * / div % mod
SELECT 100, 100 + 0,100 - 0,100 + 50,100 - 50 * 30,100 + 30.4,100 - 35.5,100 - 0.0
FROM dual;

#在SQL中,+没有连接的作用,就表示加法运算。此时会将字符串转换为数值(隐式转换)
SELECT 100 + '1'  #在java中结果是1001.
FROM DUAL;

SELECT 100 + 'a'  #结果为100,此时将'a'看做0来处理
FROM DUAL;

SELECT 100 + NULL #NULL值参与运算结果为空
FROM DUAL;

SELECT 100,100 * 1,100 * 1.0,100 / 1.0,100 / 2,
100 + 2 * 5 / 2,100 /3 , 100 DIV 0 #分母如果为0,结果就为NULL
FROM DUAL;

#取模(即取余)运算: % mod
#取模的结果的正负号与被模数一样
SELECT 12 % 3,12 % 5,12 MOD -5,-12 % 5,-12 % -5
FROM DUAL;

#练习:查询员工ID为偶数的员工信息
SELECT employee_id,last_name,salary
FROM employees
WHERE employee_id % 2 = 0;

#2. 比较运算符
#2.1 = <=> <> != < <= > >=

SELECT 1 = 2,1 != 2,1 = '1',1 = 'a',0 = 'a' #字符串存在隐式转换。如果转换数值不成功,则看做0
FROM DUAL;

SELECT 'a' = 'a','ab' = 'ab','a' = 'b' #如果等号两边都是字符串,MySQL比较的是字符对应的ANSI编码是否相等
FROM DUAL;

SELECT 1 = NULL,NULL = NULL #只要有null参与判断,结果就为null
FROM DUAL;

SELECT last_name,salary
FROM employees
#WHERE salary = 6000;
WHERE commission_pct = NULL; #此时执行,不会有任何结果,因为null参加了判断,结果不会有1出现,也就不会返回任何结果

#<=> : 安全等于
#安全等于运算符和等于运算符的作用是相似的,唯一的区别是<=>可以对null进行判断
#在两个操作数均为NULL时,其返回值为1,而不为NULL;当一个操作数为NULL时,其返回值为0,而不为NULL
SELECT last_name,salary
FROM employees
WHERE commission_pct <=>NULL; #此时返回结果就是72条

#2.2
#IS NULL \ IS NOT NULL \ ISNULL
#练习:查询表中commission_pct 为null的数据有哪些
SELECT last_name,salary,commission_pct
FROM employees
WHERE commission_pct IS NULL;

#IN 运算符
#IN 运算符用于判断给定值是否是IN列表中的一个值,如果是则返回1,否则返回0.
#如果给定的值为NULL,或者IN列表中存在NULL,则结果为NULL
SELECT 'a' IN ('a','b','c'),1 IN (2,3),NULL IN ('a','b'),'a' IN ('a',NULL);

#NO in 运算符
#用于判断给定的值是否不是IN列表中的一个值,如果不是IN列表中的一个值,则返回1,否则返回0。
SELECT 'a' NOT IN ('a','b','c'),1 NOT IN (2,3);

#LIKE 运算符
#用于匹配字符串,通常用于模糊匹配,如果满足条件则返回1,否则返回0.
#如果给定的值或者匹配条件为NULL,则返回结果为NULL
#"%":匹配0个或者多个字符
#"_":只能匹配一个字符
SELECT NULL LIKE 'abc','abc' LIKE NULL;

SELECT first_name
FROM employees
WHERE first_name LIKE 'S%';

SELECT last_name
FROM employees
WHERE last_name LIKE '_o%';

#ESCAPE 回避特殊符号的:使用转义字符。
#例如:将[%]转为[$%]、[]转为[$],然后再加上[ESCAPE'$']即可
SELECT job_id
FROM jobs
WHERE job_id LIKE 'IT\_%';





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值