#模糊查询
/*
like
between and
in
is null / is not null
*/
#1.like5
/*
特点:
1:一般和通赔符搭配使用
通配符:
% 任意多个字符,包含0个字符
_任意
*/
#eg1:查询员工名中包含字段a的员工信息
SELECT * FROM employees WHERE `last_name` LIKE '%a%'
#eg2:查询员工名中第三个字符为e,第五个字符为a的员工名和工资
SELECT `last_name`,`salary` FROM employees WHERE `last_name` LIKE '__n_l%'
#特殊
#案例3:查询员工中第二个字符为_的员工名
SELECT `last_name`,`salary` FROM employees WHERE `last_name` LIKE '_\_%'
SELECT `last_name`,`salary` FROM employees WHERE `last_name` LIKE '_$_%' ESCAPE '$'
# ESCAPE '$' 表示解释 后面的这个符号是转义字符的意思
#2 between and
/*
1.使用between and 可以提高语句的简介度
2.包含临界值
3.两个临界值不能调换顺序
*/
#案例1:查询员工编号在100到120之间的员工信息
SELECT * FROM employees WHERE `employee_id`>=100 AND `employee_id`<=120
#----------------
SELECT * FROM employees WHERE `employee_id` BETWEEN 100 AND 120
#.in
/*
含义:判断某字段的值是否属于in列表
特点:
1:使用in提高了语句简洁度
2:in列表的值要统一(括号里的值必须是同一个类型)
*/
#案例:查询员工的工种是 IT_PROG,AD_VP,AD_PRES中的一个员工名和工作编号
SELECT `last_name`,`job_id` FROM employees WHERE job_id='IT_PROG' OR job_id='AD_VP' OR job_id='AD_PRES'
#----------------
SELECT `last_name`,`job_id` FROM employees WHERE job_id IN('IT_PROG','AD_VP','AD_PRES')
#4 is null
/*
=或<>不能用于判断null值
is null或 is not null可以判断null值
is 是和 null 进行匹配的
*/
#案例:查询没有奖金的员工名和奖金率
SELECT `last_name`,`commission_pct` FROM employees WHERE `commission_pct`IS NULL;
SELECT `last_name`,`commission_pct` FROM employees WHERE `commission_pct`IS NOT NULL;