条件查询
关键词:where
条件查询导图
语法
-
关键词:where
-
select 查询列表 from 表名 where 筛选条件
-
执行循序:
- 先在库中找表名。
- 筛选满足要求的。
- 查询
-
筛选条件分类:
- 条件表达式筛序
'>、<、=、<>不等、>=、<= - 逻辑表达式筛序
&&、||、!
逻辑运算符就是连接条件表达式 - 模糊查询
like、between and 、in、is null、is not null
- 条件表达式筛序
条件查询
- 查询工资大于 12000 的员工姓名和工资
select * from employees where salary>1200;
- 查询员工号为 176 的员工的姓名和部门号和年薪
select last_name,department_id from employees where department_id<>90;
逻辑查询
- 选择工资不在 5000 到 12000 的员工的姓名和工资
select last_name,salary,commission_pct where salary>=5000 and salary<=12000;
两句等价
select last_name,salary,commission_pct where salary between 5000 and 12000;
2.1模糊查询
like
- 一般和通配符搭配在一起使用
- 通配符:
- % :任意多个字符,包含0个
- _ :任意单个字符
- 如果要查找%或_字符的时候可以转义:\% 、\_
例题
- 选择员工姓名的第三个字母是 a 的员工姓名
select last_name from employees where last_name like '__a%';
- 选择姓名中有字母 a 和 e 的员工姓名
select last_name from employees where last_name like '%a%' and '%e%';
- 选择员工姓名的第二个字母是_的员工姓名
select last_name from employees where last_name like '_\_%'
between and
- between and可以使挑选到某一个区间的值表达的更加精简
between a and b
等价于id >=a and id <= b
,a,b两个临界值不能颠倒
- 显示出表 employees 部门编号在 80-100 之间 的姓名、职位
select * from employees where
employees_id >=80 and employees_id <= 100;
会多些一些重复的东西,用between and可以改为
select * from employees where
employees_id between 80 and 100;
in
- 查询员工的工种编号是 IT,AD,MS中的一个员工名和工种编号
select last_name,job_id from employees where
job_id=‘TI’ OR job_id=‘AD’ OR job_id=‘MS’;
会多些一些重复的东西,用in可以改为
select last_name,job_id from employees where
job_id IN (‘TI’,‘AD’,‘MS’);
is NULL
- 查询没有奖金的员工名和奖金率
select last_name,commission_pct from employees
where commission_pct = NULL;
这种写法是错误的因为**=能判断NULL值**
select last_name,commission_pct from employees where
commission_pct is null;
<=> 安全等于
- 用于判断是否等于
-
查询工资为12000的员工信息
select last_name,salary from employees where salary<=>1200;
普通类型的值 NULL值 可读性 is null × √ 强 <=> √ √ 差