过滤和排序数据

过滤和排序数据

1.WHERE子句

①使用where子句,将不满足条件的行过滤掉;
②where子句紧随from子句;
③where子句中,日期与字符要包含在单引号内;
④字符大小写敏感,日期格式敏感;
⑤默认的日期格式为DD-MON-RR;修改日期格式:alter session set nls_date_format=‘YYYY-MM-DD’。

1)比较运算符:

①= 等于;
例:入职日期是1991-01-29的
where hiredate=‘1991-01-29’;
②> 大于;
例:入职日期早于1991-01-29的
where hiredate>‘1991-01-29’;
③>= 大于等于;
例:入职日期早于或等于1991-01-29的
where hiredate>=‘1991-01-29’;
④< 小于;
例:入职日期晚于1991-01-29的
where hiredate<‘1991-01-29’;
⑤<= 小于等于;
例:入职日期晚于或等于1991-01-29的
where hiredate<=‘1991-01-29’;
⑥<> 不等于;
例:部分编号不等于20的
where deptno <> 20;
⑦between…and…:使用between…and…来显示一个区间的值;
例:查看月薪在1000-3000之间的
where sal between 1000 and 3000;
⑧in:使用in来显示列表中的值;
例:部分编号是20或30的
where deptno in (20,30)
⑨like:使用like运算选择类似的值;
%:代表一个或多个字符;
_:代表一个字符;
% 和 _ 可同时使用。
例:员工名字中包含A的
where ename like ‘%A%’
⑩is null:使用is null判断空值;
例:奖金是空值的where sal is null

2)逻辑运算符

①and:逻辑并,两个条件都是为“真”则返回true;
例:查看工资大于2000且名字里面有A的
select ename,sal from emp where sal>2000
and ename like ‘%A%’;

②or:逻辑或,其中一个条件为“真”则返回true;
例:查看部门编号是20或者job是manager的
select ename,sal from emp where deptno=20
or job=‘MANAGER’;

③not:逻辑否,如果条件为“假”返回true;
例:查看奖金不是空值的
select ename,sal,comm
from emp
where comm is not null;

3)优先级

算数运算符>连接符>比较符>is [not] null,[not] like,[not] in>[not] between…and…>不等于>not>and>or
(需要优先计算的可使用括号)。
例:
①查看岗位是salesman且工资大于1000,或者岗位是manager的人的姓名,岗位,和月薪
select ename,job,sal
from emp
where job=‘MANGER’
or job=‘SALESMAN’
and sal>1000;

②查看岗位是manager或者salesman,且工资大于1000的员工姓名,岗位和月薪
select ename,job,sal
from enp
where (job=‘MANAGER’)
or (job=‘SALESMAN’)
and sal>1000;

2.ORDER BY子句

-ASC:升序,默认
-DESC:降序
-order by子句在select语句的结尾
例:
①查看员工姓名,岗位,月薪,并按照月薪升序排列
select ename,job,sal
from emp
order by sal asc;

②查看员工姓名,岗位,月薪,并按照月薪降序排列
select ename,job,sal
from emp
order by sal desc;

③按照第三列的数据进行降序排列
select ename,job,sal
from emp
order by 3;

④先按照工资进行降序排列,在按照部门编号进行升序排队
select ename,job,sal,deptno
from emp
order by sal desc,deptno asc;

3.替代变量

1)使用&和&&临时储存值;
-&:使用一个&符号来指定一个变量值,执行SQL语句时,会提示用户输入一个数值;
-&&:表示每次重复上一次使用的变量值,第二次执行SQL语句时,不会提示用户输入变量值。
2)替代变量可以替换where条件;order by子句;列表达式;表名;整个select语句。
例:

select ename,sal,job
from emp
where deptno=&deptno_num

(数字的替代变量不可加单引号,不允许存在空格)

select ename,sal,hiredate
from emp
where hiredate>‘&hiredate’

(字符或日期变量需要加单引号,不允许存在空格)

4.DEFINE,UNDEFINE

使用define创建一个变量,使用undefine删除一个变量。

5.VERIFY

使用verify命令来显示替换变量之前和之后的值。
例:
set verify on
select ename,job,sal
from empwhere sal>&sal;

输入:&sal变量值为1000后
输出:
(原值:
select ename,job,sal
from emp
where sal>&sal

新值:
select ename,job,sal
from emp
where sal>1000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值