MySQL入门 DQL语言之二:条件查询
#2.条件查询
#一、按条件表达式筛选
#案例1.查询工资>12000的员工信息
SELECT
*
FROM
employees
WHERE salary > 12000 ;
#查询部门编号不等于90号的员工名和部门编号
SELECT
last_name,
department_id
FROM
employees
WHERE department_id <> 90 ; #货值用 !=
#二、按逻辑表达式筛选
#案例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 NOT department_id => 90
AND department_id <= 110
OR salary > 15000 ;
#三、模糊查询
#1.like
#案例1:查询员工名字中包含字符A的员工信息
SELECT
*
FROM
employees
WHERE last_name LIKE '%a%'
##案例2:查询员工名中第三个字符为e,第五个字符为a的员工名和工资
SELECT
last_name,
salary
FROM
employees
WHERE last_name LIKE '__e_a%'
#案例3:查询员工名中第二个字符为_的员工名
SELECT
last_name
FROM
employees
WHERE last_name LIKE '_$_%' ESCAPE '$';
#需要使用转义符 LIKE '_\_%'
#可以指定转义符号 ESCAPE '$';
#2.between and
#案例1:查询员工编号在100在120之间的员工信息
SELECT
*
FROM
employees
WHERE employee_id BETWEEN 100 AND 120;
#3.in
#案例:查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中一个员工名和工种编号
SELECT
last_name,
job_id
FROM
employees
WHERE job_id IN('T_PROG','AD_VP','AD_PRES');
#4. is null
#案例1:查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE commission_pct IS NULL ;
#案例2:查询有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE commission_pct IS NOT NULL ;
#安全等于: <=>
#案例1:查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE commission_pct <=> NULL ;
#案例2:查询工资12000的员工信息
SELECT
last_name,
commission_pct,
salary
FROM
employees
WHERE salary <=> 12000 ;
#is null vs <=>