oracle数据库过滤和排序数据

本文适用于初学者

where子句

用于提取列满足指定标准的记录(需要给提取的列赋值)
select ename,empno,deptno
  2  from emp
  3  where deptno=10;

ENAME           EMPNO     DEPTNO
---------- ---------- ----------
CLARK            7782         10
KING               7839         10
MILLER           7934         10
1.where选择某列中的某个值,可以比较大小(字符和日期要用单引号)
操作符含义
=等于
>大于
>=大于或等于
<小于
<=小于或等于
<>不等于
between…and…在两个值之间包含两个值
in在选择的列中匹配任何值
like匹配字符
is null这是一个空值

操作符=,>,>=,<,<=,<>用法一直参考例子↓

SQL> select ename,deptno
  2  from emp
  3  where deptno>=20;

ENAME          DEPTNO
---------- ----------
SMITH               20
ALLEN               30
WARD                30
JONES               20
BLAKE               30

in在以选列里匹配


SQL> select ename,sal
  2  from emp
  3  where ename in ('SCOTT','KING','dd');

ENAME             SAL
---------- ----------
SCOTT            3000
KING             5000

between…and…已选列的值(是一个范围)


SQL> select deptno,hiredate,ename,sal,comm
  2  from emp
  3  where deptno between 10 and 30
  4  and sal;

    DEPTNO HIREDATE   ENAME             SAL       COMM
---------- ---------- ---------- ---------- ----------
        10 1981-11-17 KING             5000

like匹配已选列里的值(选择条件%代表一个或多个字符,_代表一个字符)


SQL> select ename
  2  from emp
  3  where ename like 'K%';

is null 声明他是一个空值


SQL> select ename,comm
  2  from emp
  3  where comm is null;

ENAME            COMM
---------- ----------
SMITH
JONES
BLAKE
2.逻辑运算符
操作符含义
and逻辑并,两个条件都为真
or逻辑或,其中一个条件符合
not逻辑否,如果条件为假

and两个条件同时满足才会输出,or两个条件只要有一个满足就会输出,not不输出某个值

SQL> select deptno,hiredate,ename,sal,comm,job
  2  from emp
  3  where job='ANALYST'
  4  and sal>3000
  5  or job='MANAGER';                                  

    DEPTNO HIREDATE   ENAME             SAL       COMM JOB
---------- ---------- ---------- ---------- ---------- ---------
        20 1981-04-02 JONES            2975            MANAGER
        30 1981-05-01 BLAKE            2850            MANAGER
        10 1981-06-09 CLARK            2450            MANAGER
3.优先级

在表达式中运算符的优先规则

优先级参数
1算数运算符
2连接符
3比较符
4is null , like ,in
5between
6不等于
7not
8and
9or

括号可以改变优先级的顺序

order by 子句

使用order by 给所选列的内容排序(默认升序,asc升序,desc降序)

SQL> select ename,sal,deptno
  2  from emp 
  3  order by deptno,sal;

ENAME             SAL     DEPTNO
---------- ---------- ----------
MILLER           1300         10
CLARK            2450         10
KING             5000         10
SMITH             800         20
ADAMS            1100         20

给两列的值排序,第二列的顺序在第一列的基础上进行

替代变量

替代变量用&替代,&&可以临时储存替代变量的值(/返回上一个命令)
SQL> select empno,ename,sal
  2  from emp 
  3  where ename='&name';
Enter value for name: KING
old   3: where ename='&name'
new   3: where ename='KING'

     EMPNO ENAME             SAL
---------- ---------- ----------
      7839 KING             5000

SQL> /
Enter value for name: DORD
old   3: where ename='&name'
new   3: where ename='DORD'

no rows selected

SQL> /
Enter value for name: FORD 
old   3: where ename='&name'
new   3: where ename='FORD'

     EMPNO ENAME             SAL
---------- ---------- ----------
      7902 FORD             3000

&可以替代where条件,order by 子句,列表达式,表名,整个select语句

小知识

1.如果觉得表格输出不够完整可以用↓修改

set pages 200
set lines    200

set pages 200修改纵行输出,set lines 200修改横行输出
2.如果觉得时间格式太麻烦可以通过↓修改

alter session set nls_date_format='YYYY-MM-DD';
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值