• 语法:
    select
          查询列表
    from
          表名
    where
          筛选条件
  • 分类:
    1.按条件表达式筛选:
          条件运算符:> < = <>
    2.按逻辑表达式筛选:
          逻辑运算符: and or not
    3.模糊查询: like between and in is null
          like:一般和通配符一起使用,
                通配符:%任意多个字符(包含0个字符) _ 任意单个字符

一.按条件表达式筛选

#案例1:查询工资大于12000的员工信息
SELECT 
  * 
FROM
  employees 
WHERE salary > 12000 ;

mysql 根据查询的结果进行in 查询 mysql根据条件查询_逻辑表达式

#案例2:查询部门编号不等于90号的员工的名和部门编号
SELECT 
  first_name,
  `department_id` 
FROM
  employees 
WHERE department_id <> 90 ;

mysql 根据查询的结果进行in 查询 mysql根据条件查询_逻辑表达式_02

二.按逻辑表达式筛选

#案例1:查询工资1000~2000之间的员工名和奖金
SELECT
	last_name,
	salary,
	commission_pct
FROM
	employees
WHERE
	salary>=1000 AND salary<=20000;

mysql 根据查询的结果进行in 查询 mysql根据条件查询_逻辑表达式_03

#案例2:部门编号不是90~110之间,或者工资高于15000的员工信息
SELECT
	*
FROM
	employees
WHERE
        department_id <90 OR department_id>110 OR salary>15000;
   
   #方式二:     
SELECT
	*
FROM
	employees
WHERE
        NOT(department_id >=90 AND department_id<=110) OR salary>15000;

mysql 根据查询的结果进行in 查询 mysql根据条件查询_IT_04

三.模糊查询

1. like:
#案例1:查询员工名中包含字符“a"的员工信息
SELECT
	*
FROM
	employees
WHERE
	last_name LIKE '%a%';

mysql 根据查询的结果进行in 查询 mysql根据条件查询_逻辑表达式_05

#案例2:查询员工名中第三个字符为e,第五个字符为a的员工信息
SELECT
	*
FROM
	employees
WHERE
	last_name LIKE '__n_l%';

mysql 根据查询的结果进行in 查询 mysql根据条件查询_逻辑表达式_06


案例3:查询员工名中第二个字符为_的员工名

  • 我们知道,在sql语言中 表示任意单个字符,但是现在我们要查询员工名中包含“"的员工,所以要用到转义

转义有两种方式:使用“\”或者使用“~”

#方式一:使用\
SELECT
	last_name
FROM 
	employees
WHERE
	last_name LIKE '_\_%';

	#方式二:使用“~”
SELECT
	last_name
FROM 
	employees
WHERE
	last_name LIKE '_~_%' ESCAPE '~';

mysql 根据查询的结果进行in 查询 mysql根据条件查询_转义_07

2. between and
#案例:查询员工编号在100到120之间的员工信息
SELECT
	*
FROM
	employees
WHERE
	employee_id BETWEEN 100 AND 120;

mysql 根据查询的结果进行in 查询 mysql根据条件查询_转义_08

3. in
#案例:查询员工的工种编号是IT_PROG AD_VP AD_PRES中任意一个的员工名和工种编号
SELECT
	job_id AS '工种编号', last_name AS '名'
FROM
	employees
WHERE
	job_id IN ('IT_PROG','AD_VP','AD_PRES');

mysql 根据查询的结果进行in 查询 mysql根据条件查询_转义_09

4. is null ,is not null
#案例:查询有奖金的员工信息,即commission_pct不为null的员工
SELECT
	*
FROM
	employees
WHERE
	commission_pct IS NOT NULL;

mysql 根据查询的结果进行in 查询 mysql根据条件查询_转义_10

5. 安全等于 <=>

普通“=”不能判断null,需要用“is null” 或者“is not null”来判断;但是安全等于<=>,可以直接用来判断null

#案例1:查询没有奖金的员工信息
SELECT
	last_name,commission_pct
FROM
	employees
WHERE
	commission_pct <=> NULL;

mysql 根据查询的结果进行in 查询 mysql根据条件查询_转义_11

#案例2:查询工资等于12000的员工
SELECT
	last_name,salary
FROM
	employees
WHERE
	salary <=> 12000;

mysql 根据查询的结果进行in 查询 mysql根据条件查询_IT_12

四.条件查询例题:

#查询没有奖金,工资小于18000的salary、last_name
SELECT
	last_name,salary
FROM 
	employees
WHERE
	commission_pct IS NULL AND salary<18000;

mysql 根据查询的结果进行in 查询 mysql根据条件查询_逻辑表达式_13

#查询job_id不为‘IT’ 或者工资为12000的员工信息
SELECT
	*
FROM 
	employees
WHERE
	job_id <> 'IT' OR salary=12000;

mysql 根据查询的结果进行in 查询 mysql根据条件查询_转义_14


mysql 根据查询的结果进行in 查询 mysql根据条件查询_转义_15


mysql 根据查询的结果进行in 查询 mysql根据条件查询_转义_16