一、条件查询
语法:select 【查询列表】 from 表名 where [筛选条件];
相当与Java的if--else
注意:条件查询的执行顺序:(1)from 表名 (2)where [筛选条件] (3)select [查询列表]
条件查询分类
image.png
二、按条件表达式筛选(> < = <> !=)
(1)查询员工薪资大于12000的
SELECT * FROM employees WHERE salary>12000
(2)查询部门编号不等于90的
SELECT * FROM employees WHERE department_id <>90
二、按逻辑表达式筛选(and or not)
(1)查询员工薪资再10000到2000的
SELECT * FROM employees WHERE salary>=10000 and salary<=20000
(2)查询部门编号不是在90到110之间的,或者工资高于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)
(1)查询员名包含字符A的员工信息
SELECT * FROM employees WHERE last_name LIKE '%A%'
(1)查询员名中第二个字符为的员工名
SELECT * FROM employees WHERE last_name LIKE '_%'
注意:like常用的通配符
(a.)%,任意多个字符,包含0个字符
(b.)任意单个字符
(c.)\ 用来做转义字符,例如’_%‘ 第二个包含_的
(d.)用escape 来指定转义字符,例如'Q%' escape 'Q' 这样Q就是转义字符了,是不是很神奇
四、模糊查询( between and)
(1)查询员工编号再100-120之间的员工信息
select * from employees where employee_id between 100 and 120;
注意:
(a.)between and [包含临界值] 等价于 >=100 <=120
五、模糊查询( in)
(1)查询员工的工种编号是IT_GROUP 、AD_VP中的员工信息
select * from employees where job_id in ('IT_GROUP','AD_VP');
用于筛选在某个区间的值
六、模糊查询( is null)
(1)查询没有奖金的员工信息
select * from employees where commission_pct is NULL
(2)查询有奖金的员工信息
select * from employees where commission_pct is NOT NULL
=或者<> 不能用于判断null
七、拓展(安全等于<=>)
(1)可以用来判断普通的值也可以用来判断NULL
(2)缺点,用的比较少,原因就是可读性比较差,不容易让人明白,不建议使用