or,and,group by,having

1. 使用逻辑操作符进行查询

Or \and

查询出工资大于500,或者工作为manager并且名字的首字母为J的员工

Select *from emp where (sal>500 or job=manager) and enname like J%;(大小写的区别)

2. order by

工资从低到高的顺序排列出员工的信息

 Select * from emp order  by sal  desc ;     默认是从低到高 (asc)     高到低 desc

部门编号从升序,雇员的工资降序。

Select *from emp order by depot asc ,  sal desc;

3.采用列名查询

查询一下全部雇员的年薪是多少并按照降序排列

select ename ,(sal+nvl(comm,0))*12 "年薪总共"  from emp order by "年薪总共";// 列名排序

4.分页查询(子查询先学习)

5.复杂的查询

在日常生活中经常用到的查询都是一些复杂的查询,现在学习oracle 的复杂查询。

数组的分组,max(最大) 、min(最小)、avg(平均)、 sum(求和) 、count(计数)

所有员工的最高工资和最低工资。

 select max(sal),min(sal)from emp;

薪资最高员工的名字(子查询)

select ename,sal from emp where sal=(select max(sal) from emp);

薪资最高员工的名字和工作

select ename, job,sal from emp where sal=(select max(sal) from emp);

计算共有多少个员工

select count (ename)  “共有员工”from emp ;

计算员工的平均工资和工资总和。

   select sum(sal)"总和",avg(sal)"平均" from emp;

显示工资最高的员工的姓名,和工作岗位。

select ename,job,sal from emp where sal=(select max(sal) from emp);

显示工资高于平均工资的员工信息。

select *from emp where sal>(select avg(sal) from emp );

显示工资低于平均工资的员工信息。

select *from emp where sal<(select avg(sal) from emp );

 

 

group by having

group by 对查询的数据分组统计。

Having 用于限制分组数据的统计。

1. 查询平均工资,并显示最大工资,显示最大工资在那个部门。

select avg(sal),max(sal),deptno from emp group by deptno;//按照那个分组,这个字段不许放到前面。

显示每个部门的平均工资和最低工资。

Select avg(sal),min(sal),deptno from emp group by deptno;

2. 显示每个部门的每种岗位的平均工资,最高工资和大于平均工资的人。

select avg(sal),max(sal), deptno from emp group by deptno having avg(sal)>2000;

 

 

总结

1分组函数只能出现在列表中,having 、order by 子句中。

2如果在查询语句中包含group by ,having ,order by 那么他们的顺序是group by \having\order by 顺序。必须的。

显示每个部门的每种岗位的平均工资,最高工资和大于平均工资的人。

select avg(sal),max(sal), deptno from emp group by deptno having avg(sal)>2000 order by deptno desc;\\降序排列。

3. 在选择列中如果有列、表达式、和分组函数,那么这些列和表达式必须有一个出现在group by 中,否则就会出错。

 

select avg(sal),max(sal), deptno from emp group by deptno having avg(sal)>2000 order by deptno desc;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值