WHERE 概述
WHERE 是Oracle的条件查询子句,用来过滤数据,只返回满足搜索条件的行记录。
语法顺序重点:WHERE 写在FROM之后,ORDER BY之前。
完整语法
SELECT
column1,
column2,
...
FROM
tablename
WHERE
search_condition
ORDER BY
column1,
column2;
比较运算符
| 运算符 | 描述 |
|---|---|
= | 等于 |
!= , <> | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
IN | 等于列表中任意一个值 |
NOT IN | 不等于列表中的任意值 |
[NOT] BETWEEN n AND m | 判断是否在区间范围内 |
[NOT] EXISTS | 判断子查询是否有返回行 |
IS [NOT] NULL | 判断NULL值 |
代码示例
等值查询
SELECT
id,
name,
sex
FROM
student
WHERE
name = 'tom';Code language: JavaScript (javascript)
Oracle执行输出:
SQL> select * from student where name = 'tom';
ID NAME SEX
---------- ---------- ----
1 tom 男Code language: JavaScript (javascript)
数值比较,id大于20
SELECT
*
FROM
student
WHERE
id > 20;
逻辑或 OR
SQL> select * from student where id>1 or name = 'jim';
ID NAME SEX
---------- ---------- ----
2 jim 男
3 lisa 女Code language: JavaScript (javascript)
IN 集合匹配
SELECT
*
FROM
student
WHERE
id IN(1,4)
ORDER BY
name;
执行输出:
SQL> select * from student where id in(1,3);
ID NAME SEX
---------- ---------- ----
1 tom 男
3 lisa 女Code language: JavaScript (javascript)
LIKE模糊查询
SELECT
*
FROM
student
WHERE
name LIKE 'l%'
ORDER BY
name;Code language: JavaScript (javascript)
%为通配符,'l%'代表匹配以“l”开头的字符串。
重要提示:
- 字符串类型条件值,必须使用单引号包裹,如
name = 'jim'。 WHERE在ORDER BY前面,不能调换顺序。- 判断空值不能用
= NULL,要使用IS NULL。
Previous: Distinct 去重
Next: FETCH