为什么80%的码农都做不了架构师?>>>   

--=======================================

--SQL基础-->过滤和排序

--=======================================

/*

一、使用WHERE字句实现对数据的过滤

用法:SELECT *|{[DISTINCT] column|expression [alias],...}

FROM table

[WHERE condition(s)];

二、多条件连接

AND    同时满足

OR      满足其中一个

三、比较符

>      大于

>= 大于等于

<      小于

<= 小于等于

<> 不等于

!=     不等于

IS NULL 是否为空值

IS NOT NULL 不为空值

NOT         条件为FALSE时返回TRUE

BETWEEN x AND y   大于等于X,小于等于Y

IN (集合)      在这个集合中,或者讲在这个列表中

NOT IN(集合)  不在这个集合中,或者讲不在这个列表中

LIKE   使用LIKE操作符来执行有效搜索字符串数值的通配符搜索

%      通配任意字符

_       能配单个字符

四、日期和字符串的处理

字符串和日期值使用单引号标记嵌入

字符数值是大小写有关,而日期数值是格式化的。

ORACLE默认显示的日期格式为:DD-MON-RR

可以用alter session set nls_date_format='yyyy-mm-dd';修改日期格式

永久性修改可以用:

alter system set nls_date_format='yyyy-mm-dd' scope=spfile;

日期相加减:

日期+(-)数字  返回一个往前或往后的天数的日期

+往后  -往前

日期-日期      得到两个日期之间相差的天数

五、order by 排序

默认的排序方式:升序

控制排序方式:   ASC    升序

DESC 降序

六、演示*/

/*使用WHERE条件查询*/

SQL> select * from scott.emp where sal > 2000

2  ;

EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7566 JONES      MANAGER         7839 02-APR-81       2975                    20

7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30

7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10

7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20

7839 KING       PRESIDENT            17-NOV-81       5000                    10

7902 FORD       ANALYST         7566 03-DEC-81       3000                    20

/*多条件连接*/

SQL> select * from scott.emp where deptno = 20 and sal > 2000;

EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7566 JONES      MANAGER         7839 02-APR-81       2975                    20

7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20

7902 FORD       ANALYST         7566 03-DEC-81       3000                    20

/*错误的写法*/

SQL> select * from scott.emp where 1000<=sal<=2000;

select * from scott.emp where 1000<=sal<=2000

*

ERROR at line 1:

ORA-00933: SQL command not properly ended

/*正确的写法*/

SQL> select * from scott.emp where sal >= 1000 and sal <= 2000;

EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30

7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30

7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30

7844 TURNER     SALESMAN        7698 08-SEP-81       1500                   30

7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20

7934 MILLER     CLERK           7782 23-JAN-82       1300                    10

/*BETWEEN的用法*/

SQL> select * from scott.emp where sal between 1000 and 2000;

EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30

7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30

7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30

7844 TURNER     SALESMAN        7698 08-SEP-81       1500                   30

7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20

7934 MILLER     CLERK           7782 23-JAN-82       1300                    10

/*IN的用法,以下两条语句等同*/

SQL> select * from scott.emp where sal = 3000 or sal = 5000;

SQL> select * from scott.emp where sal in (3000,5000);

EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20

7839 KING       PRESIDENT            17-NOV-81       5000                    10

7902 FORD       ANALYST         7566 03-DEC-81       3000                    20

SQL> select * from scott.emp where sal = 3000 or sal = 5000;

EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20

7839 KING       PRESIDENT            17-NOV-81       5000                    10

7902 FORD       ANALYST         7566 03-DEC-81       3000                    20

--not in的用法

SQL> select * from scott.emp where sal not in (3000,5000);

EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7369 SMITH      CLERK           7902 17-DEC-80        800                    20

7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30

7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30

7566 JONES      MANAGER         7839 02-APR-81       2975                    20

7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30

7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30

7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10

7844 TURNER     SALESMAN        7698 08-SEP-81       1500                   30

7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20

7900 JAMES      CLERK           7698 03-DEC-81        950                    30

7934 MILLER     CLERK           7782 23-JAN-82       1300                    10

/*LIKE、%、_ 运算符的用法*/

SQL> select * from scott.emp where ename like 'A%';

EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30

7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20

SQL> select * from scott.emp where ename like '_L%';

EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30

7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30

7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10

--日期格式:未修改前

SQL> select sysdate from dual;

SYSDATE

---------

28-MAR-10

/*日期格式的修改,仅对当前会话有效*/

SQL> alter session set nls_date_format = 'yyyy-mm-dd';

Session altered.

--查看修改后的日期格式

SQL> select sysdate from dual;

SYSDATE

----------

2010-03-28

--永久性修改,将其修改写到参数文件中。

alter system set  nls_date_format =  'yyyy_mm_dd' scope = spfile;

--日期的加减

--     日期+(-)数字  返回往前或往后的天数日期

--     +往前,-往后

--     日期- 日期

SQL> select sysdate + 10 from dual;

SYSDATE+10

----------

2010-04-07

SQL> select sysdate - 10 from dual;

SYSDATE-10

----------

2010-03-18

--日期相减(为相差的天数)

SQL> select empno,ename,sysdate,sysdate - hiredate from scott.emp;

EMPNO ENAME      SYSDATE    SYSDATE-HIREDATE

---------- ---------- ---------- ----------------

7369 SMITH      2010-03-28       10693.4346

7499 ALLEN      2010-03-28       10628.4346

7521 WARD       2010-03-28       10626.4346

7566 JONES      2010-03-28       10587.4346

7654 MARTIN     2010-03-28       10408.4346

7698 BLAKE      2010-03-28       10558.4346

7782 CLARK      2010-03-28       10519.4346

7788 SCOTT      2010-03-28       8379.43456

7839 KING       2010-03-28       10358.4346

7844 TURNER     2010-03-28       10428.4346

7876 ADAMS      2010-03-28       8345.43456

--使用null值过滤

SQL> select * from scott.emp where comm is null;

EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO

---------- ---------- --------- ---------- ---------- ---------- ---------- ----------

7369 SMITH      CLERK           7902 1980-12-17        800                    20

7566 JONES      MANAGER         7839 1981-04-02       2975                    20

7698 BLAKE      MANAGER         7839 1981-05-01       2850                    30

7782 CLARK      MANAGER         7839 1981-06-09       2450                    10

7788 SCOTT      ANALYST         7566 1987-04-19       3000                    20

7839 KING       PRESIDENT            1981-11-17       5000                    10

7876 ADAMS      CLERK           7788 1987-05-23       1100                    20

7900 JAMES      CLERK           7698 1981-12-03        950                    30

7902 FORD       ANALYST         7566 1981-12-03       3000                    20

7934 MILLER     CLERK           7782 1982-01-23       1300                    10

/*ORDER BY排序(默认为升序)*/

SQL> select * from scott.emp where sal > 2000 order by sal;

EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO

---------- ---------- --------- ---------- ---------- ---------- ---------- ----------

7782 CLARK      MANAGER         7839 1981-06-09       2450                    10

7698 BLAKE      MANAGER         7839 1981-05-01       2850                    30

7566 JONES      MANAGER         7839 1981-04-02       2975                    20

7902 FORD       ANALYST         7566 1981-12-03       3000                    20

7788 SCOTT      ANALYST         7566 1987-04-19       3000                    20

7839 KING       PRESIDENT            1981-11-17       5000                    10

--多字段排序

SQL> select * from scott.emp where sal > 2000 order by sal desc ,ename asc;

EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO

---------- ---------- --------- ---------- ---------- ---------- ---------- ----------

7839 KING       PRESIDENT            1981-11-17       5000                    10

7902 FORD       ANALYST         7566 1981-12-03       3000                    20

7788 SCOTT      ANALYST         7566 1987-04-19       3000                    20

7566 JONES      MANAGER         7839 1981-04-02       2975                    20

7698 BLAKE      MANAGER         7839 1981-05-01       2850                    30

7782 CLARK      MANAGER         7839 1981-06-09       2450                    10

--按第个字段降序排列,order by 4 desc

SQL> select empno,ename,job,sal from scott.emp where sal > 2000 order by 4 desc ;

EMPNO ENAME      JOB              SAL

---------- ---------- --------- ----------

7839 KING       PRESIDENT       5000

7902 FORD       ANALYST         3000

7788 SCOTT      ANALYST         3000

7566 JONES      MANAGER         2975

7698 BLAKE      MANAGER         2850

7782 CLARK      MANAGER         2450

七、更多

SQL 基础-->SELECT 查询

Sqlplus 常用命令

Oralce  相关

原文链接: http://blog.csdn.net/robinson_0612/article/details/5487992

转载于:https://my.oschina.net/dtec/blog/47476

SQL基础--过滤和排序相关推荐

  1. 阿里云天池龙珠计划SQL入门与实践 | Task02 SQL基础查询与排序

    本文为阿里云天池学习<SQL入门与实践>第二讲学习笔记,同时该讲内容基于<SQL基础教程>第二章(查询基础)及第三章(聚合与排序). SQL基础查询与排序 一.SELECT语句 ...

  2. Task02:SQL基础查询与排序-天池龙珠计划SQL训练营

    Task02:SQL基础查询与排序 一.SELECT语句基础 1.1 从表中选取数据 SELECT语句 1.2从表中选取符合条件的数据 WHERE语句 1.3 相关法则 星号(*)代表全部列的意思. ...

  3. 阿里云天池龙珠计划SQL训练营Task 2:SQL基础查询与排序

    一.SELECT语句基础 1.1 从表中选取数据 SELECT语句 从表中选取数据时需要使用SELECT语句,也就是只从表中选出(SELECT)必要数据的意思.通过SELECT语句查询并选取出必要数据 ...

  4. oracle 排序_Oracle数据库中SQL之过滤和排序数据

    1 过滤 使用WHERE子句,将不满足条件的行过滤掉.WHERE子句紧随FROM子句 SELECT *|{[DISTINCT]column|expression[alias]} FROM table ...

  5. SQL 基础-- 子查询

    --========================= --SQL 基础--> 子查询 --========================= /* 一.子查询 子查询就是位于SELECT.UP ...

  6. SQL基础--层次化查询(START BY ... CONNECT BY PRIOR)

    为什么80%的码农都做不了架构师?>>>    --====================================================== --SQL基础--& ...

  7. sql复习(sql基础、过滤和排序数据、单行函数)

    一.sql基础 日期和字符只能在单引号 中出现 在select子句中使用关键字 distinct 删除重复行 select distinct department_id from employees; ...

  8. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  9. 窥探SQL: 2.基础查询与排序

    窥探SQL: 2.基础查询与排序 基础查询 语句 关键词 SELECT WHERE FROM, As, DISTINCT 基本法则 运算符 算术运算符 比较运算符 逻辑运算符 NOT AND 和 OR ...

最新文章

  1. 在iOS 8中使用UIAlertController
  2. 复习笔记13 字符流与字节流
  3. 跨链(1) 设计链间的信任
  4. docker安装pocbox(漏洞测试验证辅助平台)
  5. 电气通用规范_与通用电气的对话使我了解到有关开放式组织的知识
  6. nginx+tomcat+redis负载均衡及session共享
  7. python拟合曲线求方程,曲线拟合方程python
  8. 节约里程法—单配送中心CVRP求解
  9. leetcode【链表—中等】707.设计链表
  10. DLbest系列1——GAN生成对抗网络2
  11. 浏览器类应用后台耗电解析 教你三招让手机更省电!
  12. php只取时间的下士_PHP获取各种起止时间
  13. 计算机网络socket翻译成中文,Socket的错误码和描述(中英文翻译)
  14. DHGNN:Dynamic Hypergraph Neural Networks
  15. 全息投影是计算机技术吗,全息投影、VR技术、AR增强现实技术的区别
  16. java csrf_java – 如何在使用CSRF登录后启用Spring Secu...
  17. 进程同步之生产者消费者模型
  18. Target Team工作任务及签到表(翟超)
  19. VK11 VK12 保存增强
  20. h264、sps、pps详解

热门文章

  1. 整理javascript操作文件说明:读写文件
  2. db和model用哪个开发大型项目 thinkphp_Java程序员开发大型应用程序时,必须要掌握几个的技巧...
  3. 设计模式复习-策略模式
  4. Windows核心编程 第2 4章 异常处理程序和软件异常
  5. POJ3692 最大点权独立集元素个数
  6. hdu3338 最大流
  7. 【Android 插件化】使用插件化引擎对应用进行重打包的恶意软件特征 ( 检测困难 | 成本低 | 恶意插件可更换 | 容易传播 )
  8. 【Android 安全】DEX 加密 ( Application 替换 | 分析 BroadcastReceiver 组件中调用 getApplication() 获取的 Application )
  9. 课堂测试-找英语单词最长链
  10. Vue——显示微信用户名称中enjoin表情