资源描述:
《数学实验MAPLE习题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、使用scott/tiger用户下的emp表和dept表完成下列练习1.列出至少有一个员工的所有部门。2.列出薪金比“SMITH”多的所有员工。3.列出所有员工的姓名及其直接上级的姓名。1.selectdistinctdnamefromdeptwheredeptnoin (selectdistinctdeptnofromemp);2.selectename,job,mgr,hiredate,salfromempwheresal> (selectsalfromempwhereename
2、='SMITH');3.selecte.ename,e.mgr,w.enamefromempe,empwwheree.mgr=w.empno;4.列出受雇日期早于其直接上级的所有员工。5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。6.列出所有“CLERK”(办事员)的姓名及其部门名称。4.selecte.ename,e.mgr,e.hiredate,w.ename,w.hiredatefromempe,empwwheree.mgr=w.empnoande.hiredate3、e;5.selecte.ename,e.hiredate,d.dname,d.deptnofromempe,deptdwheree.deptno(+)=d.deptno;本例子使用的是外连接,也可以用右连接。selecte.ename,e.hiredate,d.dname,d.deptnofromemperightjoindeptdone.deptno=d.deptno;6.selecte.ename,e.hiredate,e.job,d.dname,d.deptnofromempe,deptdwheree.
4、deptno=d.deptnoande.job=upper('clerk');7.列出最低薪金大于1500的各种工作。8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。9.列出薪金高于公司平均薪金的所有员工。7.selectjob,min(sal)fromempgroupbyjobhavingmin(sal)>1500;8.selecte.ename,d.dnamefromempe,deptdwheree.deptno=d.deptnoandd.dname=upper('sale
5、s');或者:selectenamefromempwheredeptno= (selectdeptnofromdept wheredname=upper('SALES'));9.selectename,job,salfromempwheresal>(selectavg(sal)fromemp);10.列出与“SCOTT”从事相同工作的所有员工。11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。10.selectena
6、me,jobfromempwherejob= (selectjobfromempwhereename=upper('scott'));11.selectename,sal,jobfromempwheresalin(selectsalfromempwheredeptno=30);12.selectename,sal,jobfromempwheresal>all (selectsalfromempwheredeptno=30);或者selectename,salfromempwheresal>(
7、selectmax(sal) fromempwheredeptno=30);13.列出在每个部门工作的员工数量、平均工资和平均服务期限。14.列出所有员工的姓名、部门名称和工资。15.列出从事同一种工作但属于不同部门的员工的一种组合。13.selectd.deptno,d.dname,count(e.ename),avg(e.sal),avg(months_between(sysdate,e.hiredate))fromempe,deptdwheree.deptno(+)=d.deptnogroup
8、byd.deptno,dname;或者下面的方法,这种方法更好理解,把需要汇总的生成一个视图e。selecte.*,d.dnamefrom(selectdeptno,count(ename),avg(sal),avg(months_between(sysdate,hiredate)/12) fromempgroupbydeptno)e,deptd