oracle常用查询语句

1:列出所有员工的姓名,部门名称,和工资

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

2:列出所有部门的详细信息和部门人数

select a2.deptno,a2.dname,a2.loc,count(a1.empno) from emp a1,dept a2 where a1.deptno(+) = a2.deptno group by a2.deptno,a2.dname,a2.loc;

3:列出所有员工的年工资,所在部门名称,按年薪升序排列

select a1.sal*12 ,a2.dname from emp a1,dept a2 where a1.deptno = a2.deptno order by a1.sal*12;

4:查出每个员工的上级主管及所在部门名称,并要求这些主管的薪水超过3000

select employee.ename,boss.ename ,a1.dname from emp employee,emp boss,dept a1 where employee.mgr = boss.empno and boss.deptno = a1.deptno and boss.sal >3000;

5:求出部门名称中带’S’字符的部门员工的工资合计,部门人数

SELECT d.deptno,NVL(SUM(sal),0),COUNT(empno)FROM emp e,dept d WHERE e.deptno(+)=d.deptno AND d.dname LIKE ‘%S%‘ GROUP BY d.deptno ;

6:列出部门名称和这些部门的员工信息(数量,平均工资),同时列出那些没有员工的部门

select d.dname,avg(e.sal),count(e.empno) from emp e,dept d where e.deptno(+)=d.deptno group by d.dname;

7:列出在部门”SALES”工作的员工姓名,基本工资,雇用日期,部门名称,假定不知道销售部的部门编号

select a1.ename,a1.sal,a1.hiredate,a2.dname from emp a1,dept a2 where a1.deptno = a2.deptno and a2.dname = ‘SALES‘;

8:列出公司各个工资等级雇员的数量,平均工资

select grade,count(*),avg(sal) from emp, salgrade where sal between losal and hisal group by grade;

9:列出薪水高于在部门30工作的所有员工的薪金的员工姓名和薪金,部门名称

select a1.ename,a1.sal,a2.dname from emp a1, dept a2 where a1.deptno = a2.deptno and sal > all(select sal from emp where deptno = 30);

10:列出受雇日期早于直接上级的所有员工的编号,姓名,部门名称,部门位置,部门人数

SELECT e.empno,e.ename,d.dname,d.loc,temp.count

FROM emp e,emp m,dept d,(

SELECT deptno dno, COUNT(empno) count

FROM emp

GROUP BY deptno) temp

WHERE e.mgr = m.empno(+) AND e.hiredate < m.hiredate

AND e.deptno = d.deptno

AND e.deptno = temp.dno;

11:列出所有“clerk”的姓名及其部门名称,部门人数,工资等级

SELECT e.ename , d.dname ,temp.count,s.grade

FROM emp e, dept d,(

SELECT deptno dno,COUNT(empno) count

FROM emp

GROUP BY deptno) temp,salgrade s

WHERE job=‘CLERK‘

AND e.deptno = d.deptno

AND d.deptno = temp.dno

AND e.sal BETWEEN s.losal AND s.hisal;

12:列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数及所在部门名称,位置,平均工资

SELECT t.job,t.count,d.dname,e.ename,reg.avg

FROM dept d,(

SELECT e.job,COUNT(e.empno) count

FROM emp e

GROUP BY e.job

HAVING MIN(e.sal)>1500

)t,emp e,(

SELECT deptno dno,AVG(sal) avg

FROM emp

GROUP BY deptno

)reg

WHERE e.deptno = d.deptno AND e.job = t.job

AND e.deptno = reg.dno;

13:列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的工资等级

select a1.ename,a2.dname,a1.mgr,a3.grade from emp a1,dept a2,salgrade a3,(select avg(sal) mysal from emp) a4 where a1.deptno = a2.deptno and sal between a3.losal and a3.hisal and a1.sal > a4.mysal;

14:列出与SCOTT从事相同工作的所有员工及部门名称,部门人数

SELECT e.empno,e.ename,e.job,d.dname,temp.count FROM emp e,dept d,(SELECT deptno dno,COUNT(empno) count FROM emp GROUP BY deptno) temp

WHERE e.job=(SELECT job FROM emp WHERE ename=‘SCOTT‘) AND e.ename<>‘SCOTT‘ AND e.deptno=d.deptno AND temp.dno=e.deptno;

15:列出在每个部门工作的员工数量,平均工资,和平均服务年限

SELECT d.dname,count(e.empno),avg(e.sal),round(avg(sysdate-e.hiredate)/365) from emp e,dept d where e.deptno(+)=d.deptno GROUP BY d.dname;

16:列出各种工作的最低工资及此雇员姓名

select a1.ename,a1.job,a1.sal from emp a1,(select job,min(sal) min_sal from emp group by job) a2 where a1.job=a2.job and a1.sal=a2.min_sal;

17:列出各个部门的MANAGER的最低薪金,姓名,部门名称,部门人数

select e.sal,e.ename,d.dname, count from(select job,min(sal) sal,ename,deptno from emp where job=‘MANAGER‘GROUP BY job,ename,deptno) e,

(select d.deptno,d.dname,count(e.empno) count fromemp e,dept d wheree.deptno=d.deptno GROUP BY d.deptno,d.dname) d

where e.deptno=d.deptno;

Oracle分页(根据ROWNUM分页)

select * from (select a1.*,rownum rn from (select ename,sal from emp order by sal) a1 where rownum<=10) where rn >=6;

时间: 2024-08-25 22:18:28

oracle常用查询语句的相关文章

oracle 常用查询语句

一.一般日常用的脚本 1.检查源库每个节点至少3组redoselect group#,thread#,bytes/1024/1024,members,status from v$log; select group#,thread#,sequence#,BYTES/1024/1024,archived,used,status from v$standby_log; #重启完后,可通过下面语句查看修改地方:set lines 500 pages 0col value for a90col name

【Oracle 常用查询】oracle表空间使用率统计查询

参考1 --查询表空间使用情况 SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '

Oracle分页查询语句的写法(转)

分页查询是我们在使用数据库系统时经常要使用到的,下文对Oracle数据库系统中的分页查询语句作了详细的介绍,供您参考. Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用.Oracle分分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHER

oracle常用SQL语句(汇总版)

Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’ 如果字段值里包含单引号’ 需要

23个MySQL常用查询语句

一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,=< 二查询字符串 SELECT * FROM tb_stu  WHERE sname  =  '小刘' SELECT * FROM tb_stu  WHERE sname like '刘%' SELECT * FROM tb_stu  WHERE sname like '%程序员' SELECT * F

Oracle常用查询

Oracle常用查询

oracle常用查询sql

oracle常用查询sql 原创 gordon陈 发布于2018-05-10 22:32:18 阅读数 297 收藏 展开 #!/bin/sh## create by Gordon Chen echo "\n=============`date`===================\n" if [ "$LOGNAME" = "oracle" ]; then   SQLPLUS_CMD="/ as sysdba";else  

oracle 常用查询

oracle查询表空间的使用情况 SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) "表空间使用大小", total / (1024 * 1024 * 1024) "表空间大小(G)", free / (1024 * 1024 * 1024) "表空间剩余大小(G)", (tota

45 个非常有用的 Oracle 日期查询语句

日期/时间 相关查询 获取当前月份的第一天 运行这个命令能快速返回当前月份的第一天.你可以用任何的日期值替换 "SYSDATE"来指定查询的日期. SELECT TRUNC (SYSDATE, 'MONTH') "First day of current month"      FROM DUAL; 获取当前月份的最后一天 这个查询语句类似于上面那个语句,而且充分照顾到了闰年,所以当二月份有 29 号,那么就会返回 29/2 .你可以用任何的日期值替换 "