- 计算员工年薪:
- 起别名:
- 首先,这是计算年薪时,年薪那一栏的年薪名字
- 现在我们把它的名字改为yearsal:
- 如果我们想改成中文,如下图,最好加上单引号
- 条件查询
(1)什么是条件查询?
即把表中符合条件的数据都查出来
(2)条件查询需要用到where 语句,where必须放到from 语句表的后面
语法:select …from…where 条件;
(3)有哪些条件?
1)= 等于
例如:查询薪资等于800的员工姓名和编号
select empno,ename from emp where sal = 800;
2)<> 或 != 不等于
例如:查询薪资不等于800的员工姓名和编号:
select empno,ename from emp where sal != 800;
select empno,ename from emp where sal <> 800;//小于号和大于号组成的不等号
3)< 小于
例如:查询薪资小于2000的员工姓名和编号:
mysql> select empno,ename,sal from emp where sal < 2000;
3)<= 小于等于
例如:查询薪资小于等于3000的员工姓名和编号:
select empno,ename,sal from emp where sal <= 3000;
4)> 大于
例如:查询薪资大于3000的员工姓名和编号:
select empno,ename,sal from emp where sal > 3000 ;
5)>= 大于等于
例如:查询薪资大于等于3000的员工姓名和编号:
select empno,ename,sal from emp where sal >= 3000;
6)between…and…两个值之间,等同于 >= and <=
例如:查询薪资在2450和3000之间的员工信息,包括2450和3000:
- 第一种方式: >= and <= (and是并且的意思)
- 第二种方式: between…and…
- 注意:使用between and的时候,必须遵循左小右大;而且between and是闭区间,包括两端的值。
7)is null 为 null( is not null 不为空)
例如:查询哪些员工的津贴/补助为null?
例如:查询哪些员工的津贴/补助为不为null?
- **注意:**在数据库当中null不能使用等号进行衡量,需要使用is null,因为数据库中的null代表什么也没有,它不是一个值,所以不能使用等号衡量。
8)and 并且
例如:查询工作职位为经理同时sal大于2500的人员:
9)or 或者
例如:查询工作岗位是MANAGER和SALESMAN的员工?
- 注意:and和or同时出现,and优先级较高。如果想让or先执行,需要加小括号()
例如:查询工资大于2500,并且部门编号为10或20部门的员工:
所以,以后在查询时,如果不确定优先级,就加小括号就行了
10)in 包含,相当于多个or ( not in 不在这个范围中)
例如:查询工作岗位是MANAGER和SALESMAN的员工
用上面的知识我们可以这样写:select empno,ename,job from emp where job = MANAGER’ or job = SALESMAN’;
用in的知识写:select empno,ename,job from emp where job in(‘MANAGER’,‘SALESMAN’);
又例如:查询薪资是800和5000的员工信息:
- 注意:in不是一个区间,in后面跟的是具体的值
11)not:not可以取非,主要用在 is 或 in 中,如:
is null
is not null
in
not in
12)like:like称为模糊查询,支持%或下划线匹配
- %匹配任意个字符
- 下划线:任意一个字符,(%是一个特殊的符号,_也是一个特殊符号),一个下划线只匹配一个字符
例如:找出名字中含有o的:
- 如何找出名字中有下划线的?
select ename from emp where ename like ‘%_%’; //这样不行
用转义字符:
mysql> select ename from emp where ename like ‘%_%’; // 转义字符:\