语法:select 查询列表 from 表名 where 筛选条件;

2.1 按条件表达式筛选

条件运算符: >(大于) <(小于) =(等于) !=(不等于) <> (不等于)
>=(大于或等于) <= (小于或等于) <=>(安全等于)

<=>(安全等于):拥有=一样的功能同时还能判断是否为NULL

  1. #案例1:查询工资>12000的员工信息
  2. SELECT * FROM employees WHERE salary>12000;
  3. #案例2:查询部门编号不等于90号的员工名和部门编号
  4. SELECT last_name,department_id FROM employees WHERE department_id <> 90;

2.2 按逻辑表达式筛选

逻辑运算符: &&、 || 、 ! 、 and 、 or 、 not

&& 和 and:两个条件都为true,结果为true,反之为false<br />    || 和 or:只要有一个条件为true,结果为true,反之为false<br />    ! 或 not:如果连接的条件本身为false,结果为true,反之为false  
#案例1:查询工资z在10000到20000之间的员工名、工资及奖金
SELECT last_name,salary,commission_pct 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;

2.3 模糊查询

like:一般搭配通配符使用,可以判断字符型或数值型
通配符:%表示任意多个字符(包含0个),_表示任意单个字符 (不包含0个)
like、between and、in、is null

1、like

#案例1:查询员工名中包含字符a的员工信息
SELECT * FROM employees WHERE last_name LIKE '%a%';

#案例2:查询员工名中第三个字符为b,第五个字符为a的员工名和工资
SELECT last_name,salary FROM employees WHERE last_name LIKE '__b_a%';

#案例3:查询员工名种第二个字符为_的员工名
SELECT last_name FROM employees WHERE last_name LIKE '_\_%';

_2、_between and

#案例1:查询员工编号在100到120之间的员工信息
SELECT * FROM employees WHERE employee_id>=100 AND employee_id<=120;
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120;

注意事项:
1.提高语句简洁度
2.包含临界值
3.两个临界值不能调换顺序

3、in

含义:判断某字段的值是否属于in列表中的某一项
特点:
1.使用in提高语句简洁度
2.in列表的值类型必须一致或兼容

#案例1:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
SELECT last_name,job_id FROM employees WHERE job_id='IT_PROG' OR job_id='AD_PRES' OR job_id='AD_VP';
SELECT last_name,job_id FROM employees WHERE job_id IN('IT_PROG','AD_PRES','AD_VP');

4、escape(转义字符)

image.png
表示$为转义字符,把 _ 从关键字转成普通字符

5、is null 和 is not null

=或<>不能用于判断null值
is null 或 is not null 可以判断null值

#案例1:查询没有奖金的员工名和奖金率
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL;
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NOT NULL;