尚硅谷之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;