目录
今日全部练习(已经反复练习了三次,最后一次是看题目直接打指令)
一.select
select ... from ... where ....
1 查询所有列
* 代表所有列字段
2 查询指定列
3 列运算 (+-*/)
4 给列起别名
5 ifnull()函数
PS:任何值或列与NULL运算后都得到NULL
ifnull(val1, val2)有2个参数,如果值1为NULL就返回值2
6 去重(distinct)
问题:查询所有员工一共工作在哪些职位
上面的结果重复了,可以用distinct排重
二.where
使用 >,<,>=,<=,=,!=
1 查询工资大于1500的员工
2 查询工资小于1500的员工
3 查询入职日期早于1983-01-01
4 查询入职日期晚于1983-01-01
5 查询不是30部门的所有员工
使用and和or
and : 合并多个条件,多个条件之间是一种且的关系 &&
or :合并多个条件,多个条件之间是一种或的关系 ||
1 查询工资大于等于1500小于等于2000的员工
2 查询20号和30号部门的员工
使用is null 和 is not null
1 查询所有有提成的员工
PS:所有值或列与NULL比较都返回false,包括NULL本身
2 查询没有领导的员工
使用like和not like
1 找出名字为SMITH的员工的工资 ,精确匹配
上面是用=来过滤,也可以用like
2 = 和 like有什么区别
like 其实最重要的用途是模糊查询
3 not like
通配符与模糊查询
1 通配符
- : 代表1个任意字符
% : 代表0到多个任意字符
2 like做模糊查询
1)找出名字以SM开始的员工
2)名字里有M的员工
<