6.条件查询(普通条件查询、模糊查询(like,escape,between and,in,is null))
一、普通条件查询
1.查询工资在10000到20000之间的员工名、工资以及奖金
SELECT
last_name,salary,commission_pct
FROM
employees
WHERE
salary >= 10000 AND salary <= 20000;

2.查询部门编号不是在90到110之间,或者工资高于15000的员工信息
SELECT
*
FROM
employees
WHERE
department_id < 90 OR department_id > 110 OR salary > 15000

二、模糊查询
like
between and
in
is null/is not null
1.like
注意:%为任意字符
_为单个字符
查询第3个字符为n,第五个字符为l的员工姓名和薪水
SELECT
last_name,
salary
FROM
employees
WHERE
last_name LIKE '__n_l%';

特殊:查询第2个字符为_的员工名
第一种:使用转义符\
SELECT
last_name,
salary
FROM
employees
WHERE
last_name LIKE '_\_%';
第二种:使用escape
SELECT
last_name,
salary
FROM
employees
WHERE
last_name LIKE '_~_%' ESCAPE '~';
其中~可以为任意字符

2.between and
注意:使用between and 是包含临界值的(包含100和120),并且不能颠倒顺序
查询员工编号在100到120之间的信息
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100 AND 120

3.in
注意:in中不支持通配符
查询员工编号是10,20,100的信息
SELECT
*
FROM
employees
WHERE
department_id IN (10,20,100)

4.is null
查询没有奖金的员工名和奖金率(即奖金率为0)
注意:=或者<>不能判断null值
用安全等于可以 <=>。<=>既可以判断null值,也可以判断普通值,但是可读性差
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL --------------where commission_pct <=> null 效果一样

浙公网安备 33010602011771号