条件查询:
* 什么是条件查询?不是将表中所有数据都查出来,而是查询出符合条件的。
* 语法格式:
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(不包含)】