D32
= 只能判断普通的内容
is 只能判断null值
<=> 安全等于,既能判断普通内容,又能判断null值。
mod:取余 select mod(-10,3)
被除数的正负数决定了结果的正负
a%b = a - (a/b)*b => -10 - (-10/3)*3 = -1
SELECT -10%3 ->-1
SELECT -10%-3 ->-1
SELECT 10%3 ->1
SELECT 10%-3 ->1
升序ascending全称
降序descending全称
学MySOL第二天
#进阶二:条件查询
/*语法二:
select 查询列表
from 表名
where 筛选条件:
执行顺序
①from子句
②where子句
③select子句
特点
1,按条件表达式筛选
关系运算符:> < >= <= = !=等于<> ->这个是不等于符号
补充:不建议使用 !=
2. 按逻辑表达式筛选
逻辑运算符: and or not
补充:可以使用&& || !,但不建议
3.模糊查询
like
一般和通配符搭配使用,对字符型数据进行部分匹配查询
任意单个字符: _
任意多个字符: %
in
between and
is null
*/
#案例1:查询工资>12000的员工信息
SELECT *
FROM employees
WHERE salary>12000;
#案例1:查询工资z在10000到20000之间的员工名、工资以及奖金
SELECT last_name,salary,commission_pct
FROM employees
WHERE 10000<=salary AND salary<=20000
SELECT *
FROM EMPLOYEES
WHERE last_name LIKE '_\_%'
SELECT *
FROM EMPLOYEES
WHERE last_name LIKE '__%' ESCAPE '_'
#in
/*
功能:查询某字段的值是否属于指定的列表之内
a in(常量值1,常量值2,常量值3,....)
a not in(常量值1,常量值2,常量值3,....)
*/
#案例1:查询部门编号是30/50/90的员工名、部门编号
#方式一
SELECT last_name,department_id
FROM employees
WHERE department_id IN(30,50,90)
#方式二
SELECT last_name,department_id
FROM employees
WHERE department_id=30 OR department_id=50 OR department_id=90
#案例2:查询工种编号不是SH_CLERR 或 IT_PROG的员工信息
SELECT *
FROM employees
WHERE job_id NOT IN ('SH_CLERR','IT_PROG')
#between and
/*
between and/not between and
*/
#案例1:查询部门编号是30-90之间的部门编号、员工姓名
SELECT CONCAT(first_name,last_name) AS NAME,department_id
FROM employees
WHERE department_id BETWEEN 30 AND 90
#先写30在写90,30 AND 90
#案例2:查询年薪不是100000-200000之间的员工姓名,工资,年薪。
SELECT (salary*12*(1+IFNULL(commission_pct,0))) AS'年薪',salary,CONCAT(first_name,last_name) AS NAME
FROM employees
WHERE (salary*12*(1+IFNULL(commission_pct,0))) NOT BETWEEN 100000 AND 200000
#4. is null/is not null
#案例一:查询没有奖金的员工信息
SELECT *
FROM employees
WHERE commission_pct IS NULL
/* ----------------------------------------------
= 只能判断普通的内容
