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 效果一样

 

 

posted @ 2020-12-23 22:08  冷森、  阅读(391)  评论(0)    收藏  举报