条件查询:
* 什么是条件查询?不是将表中所有数据都查出来,而是查询出符合条件的。
* 语法格式:
select
字段1,字段2,…
from
表名
where
条件;
* 具体条件有:
【=、<、=、>、!=或、between..and..、is null(is not null)、and、or、in(not in)】
实例:
[= 等于]
查询薪资等于800的员工编号、姓名及薪资:
select empno,ename,sal from emp where sal = 800;
查询SMITH员工的编号及薪资:
select empno,sal from emp where ename = ‘SMITH’;(字符串使用单引号括起来)
[< 小于]
查询薪资小于等于2000的员工编号、姓名及薪资:
select empno,ename,sal from emp where sal < 2000;
[<= 小于等于]
在员工信息表中查询薪资小于等于3000的员工编号、姓名及薪资:
select empno,ename,sal from emp where sal <= 3000;
[> 大于]
在员工信息表中查询薪资大于2500的员工编号、姓名及薪资:
select empno,ename,sal from emp where sal > 2500;
[>= 大于等于]
在员工信息表中查询薪资大于等于3000的员工编号、姓名及薪资:
select empno,ename,sal from emp where sal >= 3000;
[或!= 不等于]
在员工信息表中查询薪资不等于3000的员工编号、姓名及薪资:
select empno,ename,sal from emp where sal != 3000;
select empno,ename,sal from emp where sal 3000;
[between..and.. 等同于 >= and <= 两个值之间]
查询薪资在2450到3000之间的员工编号、姓名和薪资:
select empno,ename,sal from emp where sal >= 2450 and sal <= 3000;
select empno,ename,sal from emp where sal between 2450 and 3000;
注意:between..and.. 这个语句必须遵循左小右大
[is null 为空(is not null 不为空)]
关于MySQL中的null:
在MySQL中null表示不确定的意思,表示一个不确定的值,这个值既然是不确定的,因此无法进行任何运算。
查询哪些员工的津贴/补助为空(null):
select empno,ename,sal,comm from emp where comm = null;(这是错误写法)
select empno,ename,sal,comm from emp where comm is null;(这是正确写法)
【注意:在数据库当中null不能使用等号进行衡量,需要使用is null。
因为数据库中的null代表什么也没有,它不是一个值,所以不能使用等号衡量。】
查询哪些员工的津贴/补助不为空(null)(null 和 0 是两回事):
select empno,ename,sal,comm from emp where comm is not null;
[and 并且]
查询工作岗位是MANAGE并且工资大于2500的员工信息:
select empno,ename,job,sal from emp where job = ‘MANAGER’ and sal > 2500;
[or 或者]
查询工作岗位是MANAGE或者是SALESMAN的员工:
select empno,ename,job from emp where job = ‘MANAGER’ or job = ‘SALESMAN’;
注意:and 和 or 同时出现 ,有优先级的问题 (and 的优先级高于 or)
查询工资大于2500并且部门编号为10或者20的所有员工:
select * from emp where sal > 2500 and (deptno = 10 or deptno = 20);
[in 包含,相当于多个or(not in 不在这个范围中)]
查询薪资是800或者薪资是5000的员工:(以下两种写法都行)
select * from emp where sal = 800 or sal = 5000;
select * from emp where sal in (800,5000);(这个表示的不是800~5000的区间,而是两个值。)
查询工作岗位是MANAGER或者工作岗位是SALESMAN的员工:(下面两种写法都行)
select * from emp where job = ‘MANAGER’ or job = ‘SALESMAN’;
select * from emp where job in (‘MANAGER’,’SALESMAN’);
[not in不是/不包括括号中的几个值]
查询薪资不是800、3000、5000的所有员工:
select * from emp where sal not in (800,3000,5000);
【not 取反,主要用在 is 或 in 中; 比如:is null (是 null)—> is not null(不是 null)
in(包含) ——–> not in(不包含)】