目录
前言
1、Order by 子句的使用
2、Where子句的使用
前言前面给大家讲解了oracle的基础用法,大家可以点击这里回顾一下:oracle基础|oracle的认知|Select用法详解
然后在文末,也顺便给大家简单的提及了order by和where的用法,这篇文章就给大家详细的介绍一下order by 和 where的用法
1、Order by 子句的使用select column....
from ....
order by ...
代码语言:txt复制1) Order by子句在整个代码语言:txt复制select语句中的位置:代码语言:txt复制始终位于最后代码语言:txt复制2) order by后可以跟什么:代码语言:txt复制列名,列的别名,表达式,代码语言:txt复制列出现在select关键字后的代码语言:txt复制顺序(列号);代码语言:txt复制3) order by后可以跟多列,代码语言:txt复制表示先按第一列排序,代码语言:txt复制如第一列有相同值再按代码语言:txt复制第二列进行排序,如前二列代码语言:txt复制均有相同值,则按第三列进行排序...代码语言:txt复制4) ASC表升序,可以省略.代码语言:txt复制DESC表降序。代码语言:txt复制5)空值永远是最大的。代码语言:txt复制升序排序的时候,空值放在最后 降序排序的时候,空值放在最前面的
如果降序的时候,null在全前面,你不想要null在前面,可以加上null last
eg:order by column null last
note: 出现在order by子句之后的列,不一定出现在select子句中。
2、Where子句的使用语法:
select col_name,...
from tb_name
where col_name 比较操作表达式
逻辑操作符
col_name 比较操作表达式
代码语言:txt复制1) 作用:对SQL语句返回的数据集进行筛选;代码语言:txt复制2) 位置:紧跟在from子句后代码语言:txt复制3) 内容:由一至多个限定条件组成,限定条件由表达式, 比较符, 字面值组成。代码语言:txt复制4) 所有字符串和日期要用单引号括起来,数值不需要单引号。代码语言:txt复制日期在Oracle里有特定的格式,’DD-MON-YY’(具体看日期的显示格式),代码语言:txt复制否则作为一个字符串。代码语言:txt复制5) 几种常见的操作符:1》逻辑比较操作符
= > < >= <= != <> ^=
需求:查找工资大于1000的所有员工的last_name和工资。
需求:查找不在45号部门工作的所有员工的id,last_name和dept_id,并且按照dept_id 升序进行排序
代码语言:javascript复制select id,last_name,dept_id
from s_emp
where dept_id<>45
order by dept_id;2》sql比较操作符
between and:在什么范围之内
in(list):在一个列表中
like:模糊查询,即值不是精确的值的时候使用
通配符,即可以代替任何内容的符号
%:通配0到多个字符
_: 当且仅当通配一个字符
转义字符:
默认为\,可以指定 指定的时候用escape 符号指明即可,转义字符只能转义后面的一个字符
代码语言:txt复制between 1 and 4: 包括起止值。限定内容为1到4。in (1,2,4): 限定内容为1,2,4。
is null:对null值操作特定义的操作符,不能使用=
3》逻辑操作符
当条件有多个的时候使用
and:且逻辑
or:或逻辑
注意:and逻辑比or逻辑要高
not:非逻辑
4)
需求:
1.查找员工id在5,20之间的所有员工的id和last_name
代码语言:javascript复制select id,last_name
from s_emp
where id between 5 and 20;
or
select id,last_name
from s_emp
where id >=5 and id<=20; 2.查找员工id不在5,20之间的所有员工的id和last_name
代码语言:javascript复制 select id,last_name
from s_emp
where id not between 5 and 20;
or
select id,last_name
from s_emp
where id <5 or id > 20; 3.查找在43或者44号部门的员工的id和last_name;
代码语言:javascript复制select id,last_name
from s_emp
where dept_id in(43,44);
or
select id,last_name
from s_emp
where dept_id = 43 or dept_id = 44; 需求:查看员工提成为为空的员工的id和名字
select id,last_name,commission_pct
from s_emp
where commission_pct is null;
3.逻辑操作符
当条件有多个的时候使用
and:且逻辑
or:或逻辑
注意:and逻辑比or逻辑要高
not:非逻辑
需求:查看员工部门id为41且职位名称为Stock Clerk(存库管理员)的员工id和名字
代码语言:javascript复制select id,last_name,dept_id,title
from s_emp
where dept_id = 41
and
title = 'Stock Clerk';练习:查看员工部门为41 或者 44号部门 且工资大于1000的员工id和名字
代码语言:javascript复制select id,last_name,dept_id,title
from s_emp
where salary > 1000
and
(dept_id = 41
or
dept_id = 44);代码语言:txt复制 查看员工部门为41且工资大于1000 或者 44号部门的员工id和名字代码语言:javascript复制select id,last_name,dept_id,title
from s_emp
where salary > 1000
and
dept_id = 41
or
dept_id = 44;上面两个sql注意括号的区别