oracle表的查询学习笔记2

!使用逻辑操作符号:

?查询工资高于500或是岗位为MANAGER的雇员,同时还要满足他们的姓名的首字母为大写的J:

select * from emp where (sal>500 or job='MANAGER') and ename like 'J%';

!使用order by语句:

?按照工资的从低到高的顺序显示雇员的信息:

select * from emp order by sal;反之:select * from emp order by sal desc ;默认的是asc

?按照部门号升序而员工的工资降序进行排列:

select * from emp order by deptno , sal desc;

?按照列的别名进行排序:

select ename , (sal+nvl(comm,0))*12 "年薪" from emp order by "年薪";

!!!!!!!!!!!!!oracle表的复杂查询!!!!!!!!!!!!!!!!!!

!子查询

?查询工资最高的人并显示他的姓名:

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

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

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

!使用group by 和 having 字句

group by用于对查询的结果分组统计,

having字句用于限制分组显示结果。

?如何显示每个部门的平均工资和最高工资

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

?如何显示每个部门每种岗位的平均工资和最高工资

select avg(sal),max(sal),deptno,job  from emp group by deptno,job;

?显示平均工资低于2000的部门号和它的平均工资

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

++++++++++++对数据分组的总结++++++++++

1:分组函数只能出现在选择列表,having,order by字句中;

2:如果在select 语句中同时包含group by,having,order by那么他们的顺序是 group by, having,order by;

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

!!!!!!!!!!!!!多表查询!!!!!!!!!!!

?显示雇员名,雇员工资以及所在部门的名字






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值