LINUX 操作系统 --过滤和排序数据语句介绍

本文介绍了在LINUX操作系统中如何使用SQL进行数据过滤和排序。内容涵盖where子句进行行限制,字符和日期的处理,比较运算符(如between, in, like),NULL条件判断,逻辑运算符(and, or)以及ORDER BY子句进行升序和降序排序。此外,还讲解了使用替代变量在不同场景下的应用。" 117360718,8585899,微服务架构下的Kubernetes日志采集运维解析,"['云原生', '容器技术', '日志服务', '微服务', 'DevOps']

1. 限制行(过滤) where 子句

在使用where 子句,将不满足条件的行过滤掉:
where子句 紧随 from 子句

**SQL> select ename,empno,deptno,job,hiredate
  2  from emp
  3  where ename='KING';
ENAME           EMPNO     DEPTNO JOB       HIREDATE
---------- ---------- ---------- --------- ----------
KING             7839         10 PRESIDENT 1981-11-17**

2. 字符和日期
a. 字符和日期要包含在单引号中。
b. 字符大小写敏感,日期格式敏感。
c. 默认的日期格式是 DD-MON-RR
例:“19-APR-87”

3. 比较运算符
在这里插入图片描述
3.1 使用比较运算符

日期比较

   SQL> select ename,empno,deptno,job,hiredate
      2  from emp
      3  where hiredate>'1987-04-19';
    
    ENAME           EMPNO     DEPTNO JOB       HIREDATE
    ---------- ---------- ---------- --------- ----------
    ADAMS            7876         20 CLERK     1987-05-23

数字比较

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

ENAME           EMPNO     DEPTNO JOB       HIREDATE
---------- ---------- ---------- --------- ----------
SMITH            7369         20 CLERK     1980-12-17
ALLEN            7499         30 SALESMAN  1981-02-20
WARD             7521         30 SALESMAN  1981-02-22
JONES            7566         20 MANAGER   1981-04-02
MARTIN           7654         30 SALESMAN  1981-09-28
BLAKE            7698         30 MANAGER   1981-05-01
SCOTT            7788         20 ANALYST   1987-04-19
TURNER           7844         30 SALESMAN  1981-09-08
ADAMS            7876         20 CLERK     1987-05-23
JAMES            7900         30 CLERK     1981-12-03
FORD             7902         20 ANALYST   1981-12-03

11 rows selected.

3.2 使用between 操作符

      SQL> select deptno,dname 
  2  from dept
  3  where deptno between 10 and 30;

    DEPTNO DNAME
---------- --------------
        10 ACCOUNTING
        20 RESEARCH
        30 SALES

3.3 使用 in 操作符

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

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

3.4 使用like 操作符
a . 使用like 运算 选择类似的值
b . 选择条件可以包含字符或数字:
—— % 代表零个或多个字符。
—— _ 代表一个字符。

 SELECT last_name, hire_date
 FROM employees
 WHERE hire_date LIKE '%95';

3.5 使用 NULL 条件
使用 is null 操作符 判断空值

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

ENAME
----------
SMITH
JONES
BLAKE
CLARK
SCOTT
KING
ADAMS
JAMES
FORD
MILLER

10 rows selected.

4. 逻辑运算符
在这里插入图片描述
4.1 and
要求两边条件都为真

SQL> select ename,deptno,sal,comm,hiredate,job
          2  from emp
          3  where job='ANALYST'and sal>=3000 or job='MANAGER';
        ENAME          DEPTNO        SAL       COMM HIREDATE   JOB
        ---------- ---------- ---------- ---------- ---------- ---------
        JONES              20       2975            1981-04-02 MANAGER
        BLAKE              30       2850            1981-05-01 MANAGER
        CLARK              10       2450            1981-06-09 MANAGER
        SCOTT              20       3000            1987-04-19 ANALYST
        FORD               20       3000            1981-12-03 ANALYS

4.2 OR

要求只要任一条件为真即可:

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

ENAME          DEPTNO        SAL       COMM HIREDATE
---------- ---------- ---------- ---------- ----------
JONES              20       2975            1981-04-02
BLAKE              30       2850            1981-05-01
CLARK              10       2450            1981-06-09

5. 优先级

在这里插入图片描述
可使用括号改变优先级顺序

6. 排序子句 order by
使用 ORDER BY 子句排序
—— asc : 升序 ,默认为升序
—— desc : 降序
order by 子句 在select 语句结尾

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

升序 排序:

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

ENAME             SAL     DEPTNO
---------- ---------- ----------
CLARK            2450         10
KING             5000         10
MILLER           1300         10
JONES            2975         20
FORD             3000         20
ADAMS            1100         20
SMITH             800         20
SCOTT            3000         20
WARD             1250         30
TURNER           1500         30
ALLEN            1600         30

ENAME             SAL     DEPTNO
---------- ---------- ----------
JAMES             950         30
BLAKE            2850         30
MARTIN           1250         30

14 rows selected.

降序排序: 多列排序同时使用列的数字位置进行排序

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

ENAME             SAL     DEPTNO JOB
---------- ---------- ---------- ---------
KING             5000         10 PRESIDENT
CLARK            2450         10 MANAGER
MILLER           1300         10 CLERK
SCOTT            3000         20 ANALYST
FORD             3000         20 ANALYST
JONES            2975         20 MANAGER
ADAMS            1100         20 CLERK
SMITH             800         20 CLERK
BLAKE            2850         30 MANAGER
ALLEN            1600         30 SALESMAN
TURNER           1500         30 SALESMAN

ENAME             SAL     DEPTNO JOB
---------- ---------- ---------- ---------
MARTIN           1250         30 SALESMAN
WARD             1250         30 SALESMAN
JAMES             950         30 CLERK

14 rows selected.

7. 替代变量

使用替代变量——使用&和&&临时存储值
可替代以下内容:
——where条件
——order by 子句
——列表达式
——表名
——整个select 语句
7.1 用一个& 替代变量

字符替代变量

  SQL> select empno,ename,sal 
  2  from emp
  3  where ename='&name';
Enter value for name: SCOTT
old   3: where ename='&name'
new   3: where ename='SCOTT'

     EMPNO ENAME             SAL
---------- ---------- ----------
      7788 SCOTT            3000

where 条件替代变量:

SQL> select empno,ename,sal
  2  from emp        
  3  where &a;
Enter value for a: ename='KING'   
old   3: where &a
new   3: where ename='KING'

     EMPNO ENAME             SAL
---------- ---------- ----------
      7839 KING             5000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值