/*
语法:
select 查询列表
from 表名
where 过滤条件
从表中查询出符合过滤条件的行中的查询列表
*/
具体案例
USE myemployees;#条件查询/*
语法:
条件均写道where子句中
select 查询列表
from 表名
where 过滤条件
从表中查询出符合过滤条件的行中的查询列表
1. 条件 操作符
=
<> , !=
<
<=
>
>=
模糊查询 操作符
like
between and
in
is null
2. 逻辑 操作符
与 and
或 or
非 not
*/#条件 操作符SELECT*FROM employees WHERE salary >12000;SELECT*FROM employees WHERE department_id <>90;#逻辑 操作符SELECT*FROM employees WHERE salary >9000AND salary <12000;SELECT*FROM employees WHERENOT(department_id >=90AND department_id <=110)OR salary >15000;/*
1. like
a默认去部分大小写
和通配符一起使用
%;表示0---多个字符
_:表示1个字符
转义: WHERE last_name like '%$_%' ESCAPE '$';其中用escape关键字设定转义字符。
*/SELECT*FROM employees WHERE last_name LIKE'%a%';SELECT*FROM employees WHERE last_name LIKE'__n_l%';/*
2. between and
*/SELECT*FROM employees WHERE employee_id>=100AND employee_id<=120;#等价于SELECT*FROM employees WHERE employee_id BETWEEN100AND120;/*
3. in
用于判断某字段的值是否属于in列表中的某一项
*/SELECT*FROM employees WHERE job_id ='IT_PORT'OR job_id ='AD_VP'OR job_id ='AD_PRES';#等价于SELECT*FROM employees WHERE job_id IN('IT_PORT','AD_VP','AD_PRES');/*
4. is null / is not null
*/SELECT*FROM employees WHERE commission_pct isnull;#面试题/*
这两条SQL命令是否返回相同的结果?
返回不同的结果;
原因:commission_pct 字段中包含null,null不是字符串,不能用通配符表示。
*/SELECT*FROM employees;SELECT*FROM employees WHERE commission_pct LIKE'%%'AND last_name LIKE'%%';