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的多表查询)
继续讲解一些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的多表查询)