- 一、按条件表达式筛选
#一、按条件表达式筛选
#案例1:查询工资>12000的员工工资。 - 案例2、:查询部门编号不等于90号的员工名和部门编号
SELECT
last_name,department_id
FROM
employees
WHERE
department_id<>90; - 按照逻辑表达式运算
- 案例1:查询工资在1w~2w的员工名、工资以及奖金。
- 案例2:查询部门编号不是在90到110之间的,或者工资高于1.5w的员工信息。
#翻译:部门编号小于90的或大于110的或工资高于1.5w的 - 案例1:查询员工名中包含字符a的员工信息
- 案例2:查询员工名中第三个字符为e,第五个字符为a的员工名和工资
/select last_name,salary
from employees
where last_name like ‘a%’ or last_name like ‘__a%’;
/ - 案例3:查询员工名中,第二个字符为的员工名
SELECT
lastname
FROM
employees
WHERE
lastname
LIKE ‘/%’ ESCAPE ‘a’;
SELECT lastname
FROM employees
WHERE lastname LIKE ‘#%’ ESCAPE ‘#’ ;
#2、between and
/
①语句更加简单
②包含临界值,是>=
③两个临界值不可以调换顺序
/
#案例1:查询员工编号在100到200之间的员工信息
SELECT *
FROM employees
WHERE employeeid >100 AND employeeid<200;
#_
SELECT
FROM employees
WHERE employee_id BETWEEN 100 AND 200;
#3、in
/
含义:判断某字段的值是否属于in列表中的某一项
特点:
①使用in,提高语句简洁度。
②in列表的值类型,必须统一或者兼容(123与‘123’)
③in不支持通配符
/
#案例:查询员工的工种编号 是 it_prog、ad_vp、ad_press种的一个员工名和工种编号
SELECT last_name,job_id
FROM employees
WHERE job_id =’IT_PROG’ OR job_id=’ad_vp’ OR job_id=’ad_press’;
#+++++++++++++++++++++
SELECT last_name,job_id
FROM employees
WHERE job_id IN (‘IT_PROT’,’ad_vp’,’ad_pres’);
#4、is null
/
=或<>不能用于判断null值
is null 或 is not null可以。
/
#案例1:查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct=’(null)’;##xxxxxx
##++++++++++++++++++++++
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL;
##安全等于 <=> 可以判断null值
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct <=> NULL;
##案例2:查询工资为12000的员工信息
SELECT last_name,salary
FROM employees
WHERE salary <=>12000;
#is null pk <=>
IS NULL:仅仅可以判断NULL值,可读性较高,建议使用。
<=> :既可以判断NULL值,又可以判断普通的数值。可读性较低。
#2、查询员工号为176的员工的姓名和部门号和年薪
SELECT
last_name,
salary12,
manager_id
FROM
employees
WHERE
employee_id=’176’;
进阶2:
条件查询语法:select查询列表from表名where筛选条件;
分类
一、按照条件表达式筛选
条件运算符:< > = != <> >= <=
二、按照逻辑表达式查询
逻辑运算符:
&& || !
and or not
&&和and:两个条件都为true,结果为true,反之为false
||和or:只要有一个条件为true,结果为true,反之为false
!和not:如果连接的条件本身为false,结果为true,反之为false
三、模糊查询
like
between and
in
is null
一、按条件表达式筛选
#一、按条件表达式筛选
#案例1:查询工资>12000的员工工资。
SELECT *
FROM employees
WHERE salary > 12000;
案例2、:查询部门编号不等于90号的员工名和部门编号
SELECT
last_name,department_id
FROM
employees
WHERE
department_id<>90;
按照逻辑表达式运算
案例1:查询工资在1w~2w的员工名、工资以及奖金。
SELECT *
FROM employees;
SELECT last_name,salary,commission_pct
FROM employees
WHERE salary>10000 AND salary<20000;
案例2:查询部门编号不是在90到110之间的,或者工资高于1.5w的员工信息。
#翻译:部门编号小于90的或大于110的或工资高于1.5w的
/select
from
employees
where
department_id not “>=90 and department_id <=90” or salry>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;
#三、模糊查询
/
like
特点:
①一般和通配符搭配使用
通配符:
%代表任意多个字符,包含0个字符
_任意单个字符
between and
in
is null|is not null
*/
案例1:查询员工名中包含字符a的员工信息
SELECT
*
FROM employees
WHERE
last_name LIKE ‘%a%’ #%代表通配符
案例2:查询员工名中第三个字符为e,第五个字符为a的员工名和工资
/select last_name,salary
from employees
where last_name like ‘a%’ or last_name like ‘__a%’;
/
SELECT last_name,salary
FROM employees
WHERE last_name LIKE ‘__e_a%’ ;
案例3:查询员工名中,第二个字符为的员工名
SELECT lastname
FROM employees
WHERE last_name LIKE ‘%’ ;# \为转义字符
SELECT lastname
FROM employees
WHERE last_name LIKE ‘#_%’ ESCAPE ‘#’ ;# escape 转义
https://www.bilibili.com/video/BV12b411K7Zu?p=32
9/20学习笔记
