尚硅谷之MySQL基础
第10章MySQL的运算符
(1)算术运算符:+ - * /(除也可以写成div) %(取模可以写成mod)
(2)比较运算符:= > >= < <= !=(不等于还可以写成<>) <=>(安全等于)
(3)逻辑运算符:&&(逻辑与也可以写成and) ||(逻辑或也可以写成or) not(逻辑非)
(4)范围:表达式 between ... and ... (也可以写成 表达式>=... and 表达式 <=...)
表达式 not between ... and ...(也可以写成 表达式<... || 表达式 >...)
(5)集合:in (值,值,值...) not in(值,值,值...)
(6)模糊查询:LIKE NOT LIKE,通配符:%表示0-n个字符,_下划线代表一个字符
(7)位运算符:&(按位与) |(按位或)^(按位异或)~(按位取反)>>(右移)<<(左移)
(8)NULL值判断,is null 或 is not null,如果使用null=null,null<>null,null=0,null<>0,null=false等都不对
不过xxx is null 可以使用xxx <=> null ,xxx is not null 可以写成 not xxx <=> null
结论:所有的运算符遇到NULL结果都是NULL,除了<=>
1、算术运算符
#一、算术运算符 #+,-,*,/(div),%(mod) #筛选出eid是偶数的员工 SELECT * FROM t_employee WHERE eid % 2 = 0; SELECT * FROM t_employee WHERE eid MOD 2 = 0; #查看每天的基本工资值,每个月按22天算 SELECT eid,basic_salary/12 AS "日薪" FROM t_salary; #div也表示除,但是只保留整数部分 SELECT eid,basic_salary DIV 12 AS "日薪" FROM t_salary; #关于+,在Java中,+的左右两边如果有字符串,那么表示字符串的拼接,但是在MySQL中+只表示数值相加, #如果遇到非数值类型,先尝试转成数值,如果转失败,就按0计算 SELECT eid+ename FROM t_employee; SELECT eid+birthday FROM t_employee; #MySQL中字符串拼接要使用字符串函数实现 SELECT CONCAT(eid,":",ename) AS result FROM t_employee; |
2、比较运算符
#二、比较运算符 #=,>, <,>=, <=, !=(不等于<>),<=>(安全等于) #查询basic_salary!=10000 SELECT eid,basic_salary FROM t_salary WHERE basic_salary != 10000; SELECT eid,basic_salary FROM t_salary WHERE basic_salary <> 10000; #查询basic_salary=10000,注意在Java中比较是== SELECT eid,basic_salary FROM t_salary WHERE basic_salary = 10000; #查询commission_pct等于0.40 SELECT eid,commission_pct FROM t_salary WHERE commission_pct = 0.40; SELECT eid,commission_pct FROM t_salary WHERE commission_pct <=> 0.40; #查询commission_pct等于NULL SELECT eid,commission_pct FROM t_salary WHERE commission_pct IS NULL; SELECT eid,commission_pct FROM t_salary WHERE commission_pct <=> NULL; #查询commission_pct不等于NULL SELECT eid,commission_pct FROM t_salary WHERE commission_pct IS NOT NULL; SELECT eid,commission_pct FROM t_salary WHERE NOT commission_pct <=> NULL; |