select 语句通过 where 字句来指定查询数据的条件。
语法:
SELECT
<列名>
FROM
<表名>
WHERE
<筛选条件>;
执行顺序:
from —-> where —->select
分类
按条件表达式筛选
条件运算符:>、<、=、!=、<>、>=、<=。
注意:=、<> 不能用于判断 null 值,is null、 is not null、<=> 可以判断 null 值。
如:
SELECT
salary
FROM
employees
WHERE
salary > 12000;
SELECT
last_name,
department_id
FROM
employees
WHERE
department_id <> 90;
按逻辑运算符筛选
用于连接条件表达式。
逻辑运算符:&&、 ||、 !、 and 、or、 not。
param1 | param2 | && 和 and | || 和 or |
---|---|---|---|
true | true | true | true |
false | true | false | true |
true | false | false | true |
false | false | false | true |
**
param | ! 和 not |
---|---|
true | false |
false | true |
**
如:
# 工资在 10000 和 20000 之间
SELECT
last_name,
salary,
commission_pct
FROM
employees
WHERE
salary >= 10000
AND salary <= 20000;
# 部门编号不在 90 到 110 之间,或者工资高于 15000 的员工信息
SELECT
*
FROM
employees
WHERE
( department_id < 90 AND department_id )
OR salary >= 15000;
模糊查询
关键字:like、between and 、in、is null、is not null、not。
**
关键字 | 特点 |
---|---|
like | 一般和通配符搭配使用,通配符:% 任意多个字符,包含 0 个字符;_ 任意单个字符。如果查询的字符中含有通配符可以使用 \ 转义。或者自定义一个转义字符如:$ ,但必须使用 escape 指定。 |
between and | 使用 between and 可以简洁查询语句。包含两个临界值,两个临界值不能调换。 |
in | 判断某字段的值是否属于 in 列表中的某一项。使用in 可以简查询语句,in 列表的值类型必须一致或兼容。 |
not | 用来否定某一条件 |
如:
# like 关键字
# 查询员工名中包含字符a的员工信息
SELECT
*
FROM
employees
WHERE
last_name LIKE '%a%';# 查询员工名中第三个字符为n,第五个字符为l的员工民和工资
SELECT
last_name,
salary
FROM
employees
WHERE
last_name LIKE '__n_l%';# 查询员工名以任意一个字符开头第二个字符为_的员工信息
SELECT
*
FROM
employees
WHERE
last_name LIKE '_\_%';
# between 关键字
# 查询员工编号在100到120之间的员工信息
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100
AND 120;
# 查询员工的工种编号是IT_PROG、AD_VP、AD_PRES的员工名和工种编号
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN ( 'IT_PROG', 'AD_YP', 'AD_PRES' );
# NOT 关键字
# 查询有奖金率的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NOT NULL;