博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle-05
阅读量:5241 次
发布时间:2019-06-14

本文共 1638 字,大约阅读时间需要 5 分钟。

数据查询语言---DQL

1、排序

    asc:升序(默认值)

    desc:降序

    将查询结果进行排序(先有查询的结果再进行排序),排序用order by后面跟上排序呢指定的列,指明排序的规则

eg:将薪水由低到高进行排序

select ename,salary from emp_xu order by salary asc;//asca表示升序,也可以不写,默认为升序
select ename,salary from emp_xu order by salary desc;//降序

    注意:空值在排序的时候被看做最大值

       排序语句的执行在select之后,因此排序可以使用列名、列别名、表达式、函数还可以用数字值(表示按照结果集第几列排序,第一列使用数字1表示))

2、分组

    1)分组使用group by后面跟上指定的分组字段

eg:按照职位进行分组,求每个职位的最高,最低薪水和对应的人数总和

select position,max(salary),min(salary),count(*) from emp_xu group by position;
select ename,position,max(salary),min(salary),count(*) from emp_xu group by position;//报错,ename不是 GROUP BY 表达式
select position,max(ename),max(salary),min(salary),count(*) from emp_xu group by position;//将ename使用组函数进行包围

    注意:select之后出现的列,凡是没有被组函数包围的,必须要出现在group by语句中

    2)having:用于对分组之后的数据进行过滤,having是结合group by一起使用

eg:查询平均薪水大于5000的部门号、平均薪水,没有部门号的不算在内

select deptno,avg(nvl(salary,0)) from emp_xu where deptno is not null group by deptno having avg(nvl(salary,0))>5000;
select deptno,avg(salary) from emp_xu where deptno is not null group by deptno having avg(salary)>5000;
select deptno,avg(salary) avg_salary from emp_xu where deptno is not null group by deptno having avg_salary>5000;//报错,avg_salary无效的标识符,

       注意:where是对表中的数据进行过滤,having是对分组之后的结果进行过滤

           语句有先后的执行顺序,having在select之前执行的(from->where->group by->having->select)

    总结:(表的基础查询)

        a.  写法顺序:

            select->from->where->group by->having->order by

        b.  执行顺序

            from->where->group by->having->select->order by

        c.  关于where和having区别

           * where是行记录的过滤,having是组数据记录的过滤

           * where可以跟任何的列名以及单行函数,不能跟组函数

           * having只能包含group by之后的表达式或组函数

           * where是执行在前的,having执行在后

           * where和having都不能跟列别名(他们都是在select前执行)

转载于:https://www.cnblogs.com/xslzwm/p/9584464.html

你可能感兴趣的文章
Mongodb搭建
查看>>
U-Boot 内核 (一)
查看>>
Caused by: java.lang.ClassNotFoundException: Could not load requested class :XXX.XXX.XXX 异常处理...
查看>>
The Rings Akhaten
查看>>
腾讯云服务器记录
查看>>
python使用xlrd和xlwt读写Excel文件
查看>>
java写的小的学生管理程序
查看>>
mvc知识应用
查看>>
数据结构之排序三:插入排序
查看>>
Class.forName(),classloader.loadclass用法详解
查看>>
HTTP05--HTML常用知识
查看>>
Vim命令整理
查看>>
团队任务3:每日立会(2018-10-25)
查看>>
创业记录0
查看>>
python pandas tensorflow使用总结
查看>>
UnityAssetExplorer + PowerVRTexTool
查看>>
jquery操作select取值,设置选中(转载)
查看>>
nodejs中间件拦截,express不登录无法进入后台页面
查看>>
c函数创建文件和路径
查看>>
PHP switch问题
查看>>