oracl SQL 数据库学习.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WHERE emp.deptno=dept.deptno GROUP BY dname HAVING COUNT(*)=(SELECT MAX(COUNT(*)) FROM emp GROUP BY deptno); 执行结果: 部门名 --------- 销售部 ? 说明:本训练使用了分组统计、相等连接和子查询,使用了DECODE函数进行部门名称转换。 【训练2】 显示各部门的平均工资、最高工资、最低工资和总工资列表,并按平均工资高低顺序排序。 输入并执行以下查询: SELECT dname 部门,AVG(sal) 平均工资,MAX(sal) 最高工资,MIN(sal) 最低工资,SUM(sal) 总工资 FROM emp,dept WHERE emp.deptno=dept.deptno GROUP BY dname ORDER BY AVG(sal) DESC; 执行结果为 部门 平均工资 最高工资 最低工资 总工资 ------------------------ ------------------ ----------------- --------------- ----------------- ACCOUNTING 2916.66667 5000 1300 8750 RESEARCH 2175 3000 800 10875 SALES 1566.66667 2850 950 9400 说明:本训练使用了分组统计、相等连接和排序,使用相等连接可以通过部门编号获取部门名称。 【练习3】统计人数小于4的部门的平均工资。 5.分组统计结果排序 可以使用ORDER BY从句对统计的结果进行排序,ORDER BY从句要出现在语句的最后。 【训练9】 按职务统计工资总和并排序。` 执行以下查询: SELECT job 职务, SUM(sal) 工资总和 FROM emp GROUP BY job ORDER BY SUM(sal); 执行结果为: 职务 工资总和 ---------------- ------------------ CLERK 4150 PRESIDENT 5000 SALESMAN 5600 ANALYST 6000 MANAGER 8275 注意:排序使用的是计算列SUM(sal),也可以使用别名,写成: SELECT job 职务, SUM(sal) 工资总和 FROM emp GROUP BY job ORDER BY 工资总和; 【练习4】统计各部门的人数,按平均工资排序。 6.组函数的嵌套使用 在如下训练中,使用了组函数的嵌套。 【训练10】 求各部门平均工资的最高值。 执行以下查询: SELECT max(avg(sal)) FROM emp GROUP BY deptno; 执行结果为: MAX(AVG(SAL)) ----------------------- 2916.66667 说明:该查询先统计各部门的平均工资,然后求得其中的最大值。 注意:虽然在查询中有分组列,但在查询字段中不能出现分组列。如下的查询是错误的: SELECT deptno,max(avg(sal)) FROM emp GROUP BY deptno; 因为各部门平均工资的最高值不应该属于某个部门。 【练习5】求每种职务总工资的最低值。 2.5.3 子查询 我们可能会提出这样的问题,在雇员中谁的工资最高,或者谁的工资比SCOTT高。通过把一个查询的结果作为另一个查询的一部分,可以实现这样的查询功能。具体的讲:要查询工资高于SCOTT的雇员的名字和工资,必须通过两个步骤来完成,第一步查询雇员SCOTT的工资,第二步查询工资高于SCOTT的雇员。第一个查询可以作为第二个查询的一部分出现在第二个查询的条件中,这就是子查询。出现在其他查询中的查询称为子查询,包含其他查询的查询称为主查询。 子查询一般出现在SELECT语句的WHERE子句中,Oracle也支持在FROM或HAVING子句中出现子查询。子查询比主查询先执行,结果作为主查询的条件,在书写上要用圆括号扩起来,并放在比较运算符的右侧。子查询可以嵌套使用,最里层的查询最先执行。子查询可以在SELECT、INSERT、UPDATE、DE

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档