003_过滤和排序数据

时间:2021-03-27 08:18:07

使用WHERE子句,将不满足条件的行过滤掉。

WHERE 子句紧随 FROM 子句。

 

where过滤

字符和日期

字符和日期要包含在单引号中

字符大小写敏感日期格式敏感

默认的日期格式 DD-MON-RR

 

 

16、限制日期、字符串查询

select last_name,department_id

from employees

where last_name= 'Whalen'--注意,字符串大小写敏感,放在单引号中

 003_过滤和排序数据

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

 003_过滤和排序数据

 

 

其它比较运算

操作符

含义

BETWEEN...AND...

在两个值之间 (包含边界)

IN(set)

等于值列表中的一个 

LIKE

模糊查询

IS NULL

 空值

l between……and……

使用 BETWEEN运算来显示在一个区间内的值。

l in

使用 IN运算显示列表中的值。

l like

使用 LIKE运算选择类似的值

选择条件可以包含字符或数字:

n % 代表零个或多个字符(任意个字符)

n _ 代表一个字符。

n %_可以同时使用

可以使用 ESCAPE标识符 选择‘%’和 ‘_’ 符号。回避特殊符号的:使用转义符。例如:将[%]转为[\%][_]转为[\_],然后再加上[ESCAPE\]即可。

 

l NULL

使用 IS (NOT) NULL判断空值。

 

 

 

 

18between-and

select salary

from employees

where salarybetween 5000 and 10000--包含了边界的

 003_过滤和排序数据

 

 

 

19In

select last_name,salary

from employees

where salaryin(5000,6000,7000)--相当于几个等于  比较的或

 003_过滤和排序数据

20、模糊查询like

 003_过滤和排序数据

使用 LIKE运算选择类似的值

选择条件可以包含字符或数字:

% 代表零个或多个字符(任意个字符)

_ 代表一个字符。

 

ESCAPE

回避特殊符号的:使用转义符。例如:将[%]转为[\%][_]转为[\_],然后再加上[ESCAPE\]即可。

select last_name

from employees

where last_namelike '_a\_%' escape '\'--%表示可省略但不一定有省略_表示略过一个字符,

--escape '\'表示\作为转义,这里就是作为转义表示_

 

21、空查询

select last_name,salary

from employees

where salaryis not null--不为空值

 003_过滤和排序数据

 

 

 

 

 

逻辑运算

操作符

含义

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 ASCascend:升序

l DESCdescend:降序

l ORDER BY 子句在SELECT语句的结尾。

默认排序方式是:ASC(升序)

 

22、降序排序

select salary

from employees

order by salary desc--select末尾,order by 属性 排序方式

 003_过滤和排序数据

23、多级排序

第一个属性排序之后有相等的属性,再用另外一个属性对这些相同的进行排序。

select department_id,salary

from employees

order by salary desc,department_id asc--直接逗号隔开,再写。先按salary排序,再按department_id排序

 003_过滤和排序数据

24、别名排序

临时出现的列,给它别名,然后用这个别名排序。

select department_id,salary,salary*12 "年薪"

from employees

order by 年薪

 003_过滤和排序数据