知识大全 熟练Oracle的Sql语句必做18道

Posted 员工

篇首语:缺乏知识就无法思考,缺乏思考也就得不到知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 熟练Oracle的Sql语句必做18道相关的知识,希望对你有一定的参考价值。

熟练Oracle的Sql语句必做18道  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  使用scott/tiger用户下的emp表和dept表完成下列练习 表的结构说明如下

  emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/m佣金/deptno部门编号)

  dept部门表(deptno部门编号/dname部门名称/loc地点)

  工资 = 薪金 + 佣金

   .列出至少有一个员工的所有部门

   .列出薪金比 SMITH 多的所有员工

   .列出所有员工的姓名及其直接上级的姓名

   .列出受雇日期晚于其直接上级的所有员工

   .列出部门名称和这些部门的员工信息 同时列出那些没有员工的部门

   .列出所有 CLERK (办事员)的姓名及其部门名称

   .列出最低薪金大于 的各种工作

   .列出在部门 SALES (销售部)工作的员工的姓名 假定不知道销售部的部门编号

   .列出薪金高于公司平均薪金的所有员工

   .列出与 SCOTT 从事相同工作的所有员工

   .列出薪金等于部门 中员工的薪金的所有员工的姓名和薪金

   .列出薪金高于在部门 工作的所有员工的薪金的员工姓名和薪金

   .列出在每个部门工作的员工数量 平均工资和平均服务期限

   .列出所有员工的姓名 部门名称和工资

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

   .列出各种工作的最低工资

   .列出MANAGER(经理)的最低薪金

   .列出所有员工的年工资 按年薪从低到高排序

  ===============================================

  使用scott/tiger用户下的emp表和dept表完成下列练习 表的结构说明如下

  emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/m佣金/deptno部门编号)

  dept部门表(deptno部门编号/dname部门名称/loc地点)

  工资 = 薪金 + 佣金

   .列出至少有一个员工的所有部门

  select * from dept

  where deptno in

  (select deptno from emp group by deptno having count(*)> );

   .列出薪金比 SMITH 多的所有员工

  select * from emp

  where sal>(select sal from emp where ename= SMITH );

   .列出所有员工的姓名及其直接上级的姓名

  select ename (select ename from emp where empno=a mgr) from emp a;

  或

  select ename (select ename from emp where empno=a mgr) as mgrname from emp a;

  自连接

  select a ename b ename from emp a emp b

  where a mgr=b empno(+);外连接

   .列出受雇日期晚于其直接上级的所有员工

  select ename from emp a

  where hiredate>(select hiredate from emp where empno=a mgr);

  列出受雇日期早于其直接上级的所有员工

  select ename from emp a where

  hiredate<(select hiredate from emp where empno=a mgr);

   .列出部门名称和这些部门的员工信息 同时列出那些没有员工的部门

  select dname ename from dept left outer join emp

  on dept deptno=emp deptno;

  select dname ename from dept a emp b

  where a deptno = b deptno(+);

   .列出所有 CLERK (办事员)的姓名及其部门名称

  select dname ename from dept a emp b

  where a deptno=b deptno and job= CLERK ;

  select (select dname from dept where deptno=a deptno) as dname ename

  from emp a

  where job= CLERK ;

   .列出最低薪金大于 的各种工作

  select job min(sal) msal from emp

  group by job having min(sal)> ;

   .列出在部门 SALES (销售部)工作的员工的姓名 假定不知道销售部的部门编号

  select ename from emp where deptno=(select deptno from dept where dname= SALES );

   .列出薪金高于公司平均薪金的所有员工

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

   .列出与 SCOTT 从事相同工作的所有员工

  select * from emp where job=(select job from emp where ename= SCOTT );

   .列出薪金等于部门 中员工的薪金的所有员工的姓名和薪金

  select * from emp where sal in

  (select sal from emp where deptno= );

  或

  select * from emp where sal = any

  (select sal from emp where deptno= );

   .列出薪金高于在部门 工作的所有员工的薪金的员工姓名和薪金

   最大值>all

  select * from emp where sal>all

  (select sal from emp where deptno= );

   最小值<all

  select * from emp where sal < all

  (select sal from emp where deptno= );

   .列出在每个部门工作的员工数量 平均工资和平均服务期限

  select deptno count(*)

  trunc(avg(sal+nvl(m ))) avgsal

  to_char(to_date( yyyy mm dd ) + avg(sysdate hiredate)

   yy 年 mm 月 dd ) avgday

  from emp group by deptno;

   .列出所有员工的姓名 部门名称和工资

  select ename dname sal+nvl(m ) from emp dept where emp deptno=dept deptno;

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

  select a * (select count(*) from emp where deptno=a deptno) tot

  from dept a ;

   .列出各种工作的最低工资

  select job min(sal+nvl(m )) from emp group by job;

  这样写有问题

  select job min(nvl(sal+m )) from emp group by job;

   .列出MANAGER(经理)的最低薪金

  select min(sal) from emp where job= MANAGER ;

   .列出所有员工的年工资 按年薪从低到高排序

  select ename (sal+nvl(m ))* tot from emp order by tot;

   orcle的等连接

  SELECT d * FROM EMP E DEPT D WHERE E DEPTNO=D DEPTNO;

   orcla的外连接

  SELECT d * FROM EMP E DEPT D WHERE E DEPTNO(+)=D DEPTNO;

  +放在没有匹配行的表一侧 所以dept表的记录完全显示

   标准等联结

  select dept * from emp inner join dept

  on emp deptno = dept deptno;

   标准的右外联结

  select dept * from emp right outer join dept

  on emp deptno = dept deptno;

  select dept * from dept left outer join emp

cha138/Article/program/Oracle/201311/16740

相关参考

知识大全 oracle中使用SQL递归语句

oracle中使用SQL递归语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  例子  pid&

知识大全 Oracle维护常用SQL语句汇总

Oracle维护常用SQL语句汇总  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如何远程判断O

知识大全 Oracle维护常用SQL语句二

数据库手册:Oracle维护常用SQL语句二  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  回滚

知识大全 Oracle维护常用SQL语句一

数据库手册:Oracle维护常用SQL语句一  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  查看

知识大全 oracle构造添加字段的SQL语句

oracle构造添加字段的SQL语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用ORACL

知识大全 ORACLE优化SQL语句,提高效率(2)

ORACLE优化SQL语句,提高效率(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  索引是

知识大全 oracle中SQL语句可以使用的函数

oracle中SQL语句可以使用的函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  字符串处理

知识大全 Oracle体系框架及SQL语句性能探讨

Oracle体系框架及SQL语句性能探讨  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要基于

知识大全 oracle中怎么确定性能差的SQL语句

oracle中怎么确定性能差的SQL语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前者很容

知识大全 oracle性能检测sql语句

  监控事例的等待  selecteventsum(decode(wait_Time))Prev  sum(decode(wait_Time))Currcount(*)Tot  fromv$sessi