使用WHERE 子句,将不满足条件的行过滤掉。
WHERE 子句紧随 FROM 子句。
where过滤
字符和日期
l 字符和日期要包含在单引号中。
l 字符大小写敏感,日期格式敏感。
l 默认的日期格式是 DD-MON月-RR。
16、限制日期、字符串查询
select last_name,department_id
from employees
where last_name = 'Whalen'--注意,字符串大小写敏感,放在单引号中
select last_name,department_id,hire_date
from employees
where hire_date = '7-6月-1994'--日期也应该放在单引号中,默认格式是 DD-MON月-RR
比较运算
操作符 | 含义 |
= | 等于 (不是 ==) |
> | 大于 |
>= | 大于、等于 |
< | 小于 |
<= | 小于、等于 |
<> | 不等于 (也可以是 !=) |
注意:赋值使用 := 符号
17、比较限制查询
select salary
from employees
where salary > 5000
其它比较运算
操作符 | 含义 |
BETWEEN...AND... | 在两个值之间 (包含边界) |
IN(set) | 等于值列表中的一个 |
LIKE | 模糊查询 |
IS NULL | 空值 |
l between……and……
使用 BETWEEN 运算来显示在一个区间内的值。
l in
使用 IN运算显示列表中的值。
l like
n 使用 LIKE 运算选择类似的值
n 选择条件可以包含字符或数字:
n % 代表零个或多个字符(任意个字符)。
n _ 代表一个字符。
n %和_可以同时使用
n 可以使用 ESCAPE 标识符 选择‘%’和 ‘_’ 符号。回避特殊符号的:使用转义符。例如:将[%]转为[\%]、[_]转为[\_],然后再加上[ESCAPE ‘\’] 即可。
l NULL
使用 IS (NOT) NULL 判断空值。
18、between-and
select salary
from employees
where salary between 5000 and 10000--包含了边界的
19、In
select last_name,salary
from employees
where salary in(5000,6000,7000)--相当于几个等于 比较的或
20、模糊查询like
使用 LIKE 运算选择类似的值
选择条件可以包含字符或数字:
% 代表零个或多个字符(任意个字符)。
_ 代表一个字符。
ESCAPE
回避特殊符号的:使用转义符。例如:将[%]转为[\%]、[_]转为[\_],然后再加上[ESCAPE ‘\’] 即可。
select last_name
from employees
where last_name like '_a\_%' escape '\'--%表示可省略但不一定有省略,_表示略过一个字符,
--escape '\'表示\作为转义,这里就是作为转义表示_
21、空查询
select last_name,salary
from employees
where salary is not null--不为空值
逻辑运算
操作符 | 含义 |
AND | 逻辑并 |
OR | 逻辑或 |
NOT | 逻辑否 |
l AND
AND 要求并的关系为真。
l OR
OR 要求或关系为真。
l NOT
取相反
优先级
越高越优先
优先级 | 运算符 |
1 | 算术运算符 |
2 | 连接符 |
3 | 比较符 |
4 | IS [NOT] NULL, LIKE, [NOT] IN |
5 | [NOT] BETWEEN |
6 | NOT |
7 | AND |
8 | OR |
可以使用括号改变优先级顺序。
Order by排序
ORDER BY子句
l ASC(ascend): 升序
l DESC(descend): 降序
l ORDER BY 子句在SELECT语句的结尾。
l 默认排序方式是:ASC(升序)
22、降序排序
select salary
from employees
order by salary desc--在select末尾,order by 属性 排序方式
23、多级排序
第一个属性排序之后有相等的属性,再用另外一个属性对这些相同的进行排序。
select department_id,salary
from employees
order by salary desc,department_id asc--直接逗号隔开,再写。先按salary排序,再按department_id排序
24、别名排序
临时出现的列,给它别名,然后用这个别名排序。
select department_id,salary,salary*12 "年薪"
from employees
order by 年薪