oracle表管理(四)

来源:互联网 发布:蔡健雅 进化论 知乎 编辑:程序博客网 时间:2024/05/18 03:02
oracle表管理(四)


继续讲解一些select 的查询语句




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


表示查询满足sal>500或者job为MANAGER的雇员,同时还要满足他们的姓名首
写字母为大写的J


select * from emp order by sal (asc可以省略);


按照工资从低到高的顺序查询雇员的信息


select * from emp order by sal desc;


按照工资从高到低的顺序查询雇员的信息


select * from emp order by deptno,sal desc;


将雇员的信息首先按照部门之间的升序 然后在部门里面按照工资的降序 查询出来 




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


使用别名字段来进行查询


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


查询emp中最高的sal和最低的sal


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


把emp表中最高sal职员的ename和sal查询出来




下面讲解一些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;


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


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


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


group by, having, order by 在语句中出现的顺序是:


group by ->having-> order by 


select a1.ename,a1.sal,a2.dname from emp a1,dept a2 where a1.deptno=a2.deptno;


多表查询 (使用别名 类似于mysql的多表查询)
原创粉丝点击