1. 按条件表达式查询
符号 | 说明 |
---|
> | 大于 |
< | 小于 |
= | 等于 |
<>、!= | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
<=> | 安全等于 |
SELECT *
FROM employees
WHERE salary > 10010;
SELECT *
FROM employees
WHERE department_id <> 90;
SELECT *
FROM employees
WHERE commission_pct <=> NULL;
SELECT *
FROM employees
WHERE salary <=> 24000;
SELECT *
FROM employees
WHERE last_name <=> 'K_ing';
- 关于安全等于和等于的比较
- 相同点
- "<=>"是安全等于符号,比较两个值是否相等,相等时返回1,不相等时返回0
- “=” 是等于符号,比较两个值是否相等,相等时返回1,不相等时返回0
- 不同点
- “<=>” 对null的比较有意义
- “a” <=> null 得0
- null <=> null 得出 1
- “=” 对null值比较无意义
- ‘a’ = null 得null
- null = null 得null
2. 按逻辑表达式查询
SELECT *
FROM employees
WHERE (salary >= 5000 AND salary <= 10000) OR salary > 20000;
3. 模糊查询
- like:正则查询
- 一般和通配符使用,"%“表示任意多个字符,”_"表示任意单个字符
- 不支持查询null,也就是说null会被过滤掉
- 查询信息里有 ‘_’ 时,支持使用 “\” 当作转义字符
- in:判断是否等于in列表中的某一项
- not in:判断是否不等于列表中的任意一个
- any:判断是否等于in列表中的某一项
- 与列表中的一个匹配就是true
- some关键字是any的别称,比较少用
- all:判断是否和所以值匹配
- 与集合中的所有值匹配才是true
- 一般使用 “<>all()” 来表示不等于任一项
- between and:在…之间
- is null:是否等于null
- is not null:是否不等于null
SELECT *
FROM employees
WHERE first_name LIKE '_a__e%';
SELECT *
FROM employees
WHERE last_name LIKE '_\_%';
SELECT last_name,salary
FROM employees
WHERE salary BETWEEN 10000 AND 20000;
SELECT *
FROM employees
WHERE job_id IN('AD_VP', 'PR_REP');
SELECT *
FROM employees
WHERE commission_pct IS NULL;
SELECT *
FROM employees
WHERE commission_pct IS NOT NULL;