oracle---plsql---示例laobai

select * from scott.emp;
--1 列出emp表中各部门的部门号,最高工资,最低工资
    select deptno,max(sal),min(sal) from scott.emp group by deptno;

2 列出emp表中各部门job为‘CLERK‘的员工的最低工资,最高工资
 select min(sal),max(sal) from scott.emp where job=‘CLERK‘

3 --对于emp中最低工资小于13000的部门,
--列出job为‘CLERK‘的员工的 (部门号),最低工资,最高工资
  select min(sal),max(sal) from scott.emp where job=‘CLERK‘ and deptno in
  (
    select deptno from scott.emp group by deptno having min(sal)<‘13000‘
  )  

4 根据部门号由高而低,工资有低而高列出每个员工的姓名,部门号,工资

select ename,deptno,sal from scott.emp order by deptno desc,sal

5列出‘张三‘所在部门中每个员工的姓名与部门号
  select ename,deptno from
  scott.emp where deptno in
    (
     select deptno from scott.emp where ename=‘WARD‘
     )

6列出每个员工的姓名,工作,部门号,部门名
 select ename,job,scott.emp.deptno ,scott.dept.dname
  from scott.emp  inner join scott.dept on scott.emp.deptno = scott.dept.deptno;

 select ename,job,scott.emp.deptno ,scott.dept.dname
  from scott.emp , scott.dept where
   scott.emp.deptno = scott.dept.deptno;

7列出emp中工作为‘CLERK‘的员工的姓名,工作,部门号,部门名
 select ename,job,scott.emp.deptno ,scott.dept.dname
  from scott.emp , scott.dept
  where
   scott.emp.deptno = scott.dept.deptno and job=‘CLERK‘;

8 对于emp中有管理者的员工,列出姓名,管理者姓名(管理者外键为mgr)
 同表自关联。适合于设计多级菜单,多级种类。
select s1.ename,s2.ename as 管理者
from
 (select * from scott.emp where mgr is not null) s1,scott.emp s2
 where s1.mgr = s2.empno;

9对于dept表中,列出所有部门名,部门号,
select * from
同时列出各部门工作为‘CLERK‘的员工名与工作
select d.*,e.ename,e.job from scott.dept d  join
 (select deptno,ename,job from scott.emp where job=‘CLERK‘) e
 on d.deptno = e.deptno;

10 对于工资高于本部门平均水平的员工,列出部门号,姓名,工资,按部门号排序
  select deptno,ename,sal from scott.emp e
  where sal>(select avg(sal) from scott.emp where deptno = e.deptno)
  order by deptno;

  select deptno,avg(sal) from scott.emp group by deptno

11 对于emp,列出各个部门中工资高于本部门平均水平的员工数和部门号,
按部门号排序
  select  count(1) 员工数,deptno from
  ( select deptno,ename,sal from scott.emp e
  where sal>(select avg(sal) from scott.emp where deptno = e.deptno)
  ) group by deptno order by deptno;

12   对于emp中工资高于本部门平均水平,人数多与1人的,列出部门号,人数,按部门号排序
 select  count(1) 员工数,deptno from
  ( select deptno,ename,sal from scott.emp e
  where sal>(select avg(sal) from scott.emp where deptno = e.deptno)
  ) group by deptno having count(1)>1 order by deptno;

13 对于emp中低于自己工资至少5人的员工,列出其部门号,姓名,工资,
[以及工资少于自己的人数]
 --找出有比自己工资少的人
select t.*  from
(
select deptno,ename,sal,empno from scott.emp
  where sal not in
  (
    select  sal from (
   select distinct(sal) ,rownum r from scott.emp  order by  sal )
    where r<6
    )
 ) t ,scott.emp where scott.emp.sal<t.sal;

    select a.deptno,a.ename,a.sal,(select count(b.ename) from
    emp as b where b.sal<a.sal) as 人数 from scott.emp as a
    where (select count(b.ename) from emp as b where b.sal<a.sal)>5

  

时间: 2024-11-03 21:58:28

oracle---plsql---示例laobai的相关文章

Oracle/PLSQL CURSOR FOR Loop

Oracle/PLSQL: CURSOR FOR Loop The syntax for the CURSOR FOR Loop is: FOR record_index in cursor_nameLOOP      {.statements.}END LOOP; You would use a CURSOR FOR Loop when you want to fetch and process every record in a cursor. The CURSOR FOR Loop wil

Oracle&PLSQL 安装及乱码问题解决

1,先到Oracle网站下载Instant Client ,如果有老版本,就不用下载了 下载回是一个压缩文件,解压之后的文件夹叫:D:/instantclient_11_2.放在你喜欢的目录即可.例如:D:/instantclient_11_2 2. 2.在D:/instantclient_11_2目录下新建目录network,在network目录下再新建admin目录,在admin目录下新建文件tnsnames.ora,使用文本编辑器打开写入如下内容: MWDB=(DESCRIPTION = 

oracle Plsql 运行update或者delete时卡死问题解决的方法

oracle Plsql 运行update或者delete时 遇到过Plsql卡死问题或者导致代码运行sql的时候就卡死. 在开发中遇到此问题的时候,本来把sql复制出来,在plsql中运行,Sql本身拼写无误,可是出现plsql卡死的情况, 在代码中,运行sql的地方打断点debug,发现运行sql,仍然没有响应.经过网上查资料,推測导致这样的情况的原因是 可能在PLSQL Developer运行update时没有commit,oracle将该条记录锁住了. 能够通过下面办法解决: 先查询锁定

MyEclipse+Weblogic+Oracle+PLSQL配置注意事项

Weblogic配置详情:<Weblogic安装与配置图文详解>Oracle+PLSQL配置详情:<PL/SQL访问远程Oracle服务器(多种方式)>MyEclipse配置:<Eclipse在开发Web项目时的配置优化>,<教你破解MyEclipse到2016年[图文详解]>虽然总结过以上开发环境的配置及优化,但是在使用的过程中依旧出现了或多或少.大大小小的问题,统一记录一下.1.MyEclipse导入工程.File-->Import-->Ge

Oracle/PLSQL: LENGTH Function-from cyber

Oracle/PLSQL: LENGTH Function This Oracle tutorial explains how to use the Oracle/PLSQL LENGTH function with syntax and examples. Description The Oracle/PLSQL LENGTH function returns the length of the specified string. Syntax The syntax for the LENGT

Oracle/PLSQL: LPAD Function-from cyber

Oracle/PLSQL: LPAD Function This Oracle tutorial explains how to use the Oracle/PLSQL LPAD function with syntax and examples. Description The Oracle/PLSQL LPAD function pads the left-side of a string with a specific set of characters (when string1 is

Oracle 游标示例,带异常处理

Oracle游标示例一则,带异常处理. DECLARE CURSOR c_dl IS SELECT ID, NSRSBH, WSPZXH, ZXYY_DM, HZRQ, SWJG_DM, GXSJ FROM T_GUOS_ZXXX WHERE gxsj > begin_gxsj; c_row c_dl%ROWTYPE; BEGIN FOR c_row IN c_dl LOOP BEGIN IF (c_row.GXSJ > max_gxsj) THEN BEGIN max_gxsj := c_r

Oracle PLSQL 实例精解 中文版pdf

下载地址:网盘下载 <Oracle PLSQL 实例精解>是一本逐步分解的,详尽的pl/sql编程教程,使用真实场景的试验.范例和练习来介绍读者所需的pl/sql编程技能,涵盖oracle 11g的最新特性.作者的写作手法源自于在哥伦比亚大学教授pl/sql编程技术的经验,深度探索pl/sql编程技术,融合自己的最佳实践.使用本书,读者可以快速掌握pl/sql编程基本知识,并建立工程化的概念,是市面上难得的pl/sql教程.下载地址:网盘下载

RHEL5 X86-64上安装Oracle 11gR2示例与总结

进入Oracle DBA行业也有好几年了,但是说到安装Oracle的经验,我还真不是特别多,印象中刚开始每次安装都有点磕磕碰碰,随着接触Oracle的时间越来越长,各方面的原理.机制也都有一定的了解后,现在安装Oracle已经很少会遇到问题了.基本上我把自己安装Oracle的方式可以归为下面三个阶段 刚接触和学习Oracle,安装完全没有头绪,只能按照网上或者书上有截图的方式一步一步照样安装,出错后,只能协助,然后重新安装 接触Oracle一段时间以后,安装的基本原理.步骤也都了解了,一般都是再

oracle Plsql 执行update或者delete时卡死问题解决办法

oracle Plsql 执行update或者delete时 遇到过Plsql卡死问题或者导致代码执行sql的时候就卡死. 在开发中遇到此问题的时候,本来把sql复制出来,在plsql中执行,Sql本身拼写无误,但是出现plsql卡死的情况, 在代码中,执行sql的地方打断点debug,发现执行sql,仍然没有响应.经过网上查资料,猜测导致这种情况的原因是 可能在PLSQL Developer执行update时没有commit,oracle将该条记录锁住了. 可以通过以下办法解决: 先查询锁定记