#进阶二:条件查询
/*
语法:
SELECT
要查询的列表
FROM
表名
WHERE
筛选条件;
分类:
一、按条件表达式筛选
条件运算符:
= < <= > >=;
<> 不等于 ;!=不等于; < ; <=;>;>=;
二、按逻辑表达式筛选
逻辑运算符:
&& || | !
and or not
&&和and:都为Ture则为Ture,反之为False
||和or:有一个为Ture则为True,反之为False
!:取非,True取非后为False,False取非后为True
三、模糊查询
LIKE
BETWEEN AND
IN
IS NULL
*/
#一、按条件表达式筛选
#案例一:查询工资大于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;
#三、模糊查询
/*
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
*
FROM
employees
WHERE
last_name LIKE '_\_%';%转义字符\
/*
BETWEEN AND
①提高简洁度
②包含临界值
临界值不能颠倒
*/
SELECT
last_name,
salary,
commission_pct
FROM
employees
WHERE
salary BETWEEN 10000 AND 20000;
/*
IN 用于判断某字段的值是否属于in列表中的某一项
*/
#案例:查询员工编号为IT_PORG、AD_VP中的一个员工名和工种编号
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN('IT_PORG','AD_VP');
/*
IS NULL 、 IS NOT NULL
*/
#案例:查询没有奖金的员工名
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL;