#进阶2:条件查询
/*
语法:
select
查询列表
from
表名
where
筛选条件
分类:
一、按条件表达式筛选
条件运算符:> < = != <> >= <=
二、按逻辑表达式筛选
逻辑运算符:&& || !
and or not
三、模糊查询
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:查询工资在10000在2000之间的员工名
SELECT last_name,salary,commission_pct
FROM employees
where salary>=10000 AND salary<=20000;
#模糊查询
/*
like
between and
in
is null
*/
#1.like
特点
1.一般和通配符搭配使用
通配符:
%任意多个字符,包含0个字符
_任意单个字符
#查询员工名中包含字符a的员工信息
SELECT last_name
from employees
where last_name LIKE '%a%';
#查询员工名中第三个字符为e,第五个字符为a的员工名和工资
SELECT last_name,salary
FROM employees
WHERE last_name LIKE '__n_l%';
#查询员工名中字符为_的员工名
SELECT last_name,salary
FROM employees
WHERE last_name LIKE '_\_%';#转义字符
#2.between and
/*
1.使用可以提高简洁
2.包含临界值
3.两个临界值不能交换
*/
#案例1:查询员工编号在100到120之间的员工信息
SELECT*
FROM employees
WHERE employee_id BETWEEN 100 AND 120;
#3.in
/*
含义:判断某字段的值是否属于in列表中的某一项
特点:1.使用in提高语言简洁度
2.in 列表中的值诶新必须一致或兼容
*/
#案例 : 查询员工的工种编号是 IT_PROG AD_VP AD_PRES中的一个员工名和工种编号
SELECT*
FROM employees
WHERE job_id IN('IT_PROG' ,'AD_VP' ,'AD_PRES');
#4. is null
/*
=或<>不能用于判断null值
is null 或 is not null 可以判断null值
*/
#案例1:查询没有奖金的员工名和奖金率
SELECT*
FROM employees
WHERE commission_pct IS NULL;
#案例1:查询有奖金的员工名和奖金率
SELECT*
FROM employees
WHERE commission_pct IS not NULL;
#安全等于 <=>
SELECT*
FROM employees
WHERE commission_pct <=> NULL;
#安全等于 <=> 查询工资为12000的员工信息
SELECT*
FROM employees
WHERE salary <=> 12000;
# is null pk <=>
IS NULL:仅仅可以判断null值,可读性较高,
<=>:既可以判断null值,又可以判断普通的数值,可读性较低
#经典面试题
问这两个是否一样?
SELECT *
FROM employees;
SELECT *
FROM employees
WHERE commission_pct LIKE'%%';
#---------------------------------------------
#进阶2:条件查询-某学习视频笔记
最新推荐文章于 2024-10-01 12:47:02 发布