欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    oracle课后部分习题答案.pdf

    • 资源ID:90899754       资源大小:1.38MB        全文页数:14页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    oracle课后部分习题答案.pdf

    第 4 章 SQL应 用 基 础 14.请 从 表 EM P中 查 找 工 资 低 于 2000的 雇 员 的 姓 名、工 作、工 _select ename,job,sal from emp where sal=2000;17.在 表 EM P中 查 询 所 有 工 资 高 于 JONES的 所 有 雇 员 姓 名、工 作 和 工 资。select ename,job,sal from emp where sal(select sal from emp whereename=JONES);18.列 出 没 有 对 应 部 门 表 信 息 的 所 有 雇 员 的 姓 名、工 作 以 及 部 门 号。select ename,job,deptno from emp where deptno not in(selectdeptno from dept);2 0.查 找 工 资 在 1000 3000之 间 的 雇 员 所 在 部 门 的 所 有 人 员 信 息 select*from emp where deptno in(select distinct deptno from empwhere sal between 1000 and 3000);21.查 询 列 出 来 公 司 就 职 时 间 超 过 2 4年 的 员 工 名 单 select ename from emp where hiredate=add_months(sysdate,-288);22.查 询 显 示 每 个 雇 员 加 入 公 司 的 准 确 时 间,按 xxxx年 xx月 xx日 时 分 秒 显 示。select ename,to_char(hiredate,yyyy-mm-dd hh24:mi:ss)from emp;23.查 询 所 有 8 1年 7 月 1 日 以 前 来 的 员 工 姓 名、工 资、所 属 部 门 的 名 字 select ename,sal,dname from emp,dept whereemp.deptno=dept.deptno andhiredate=to_dateC 1981-07-0 r,yyyy-mm-dd,);24.查 询 公 司 中 按 年 份 月 份 统 计 各 地 的 录 用 职 工 数 量 select to_char(hiredate,yyyy-mm),loc,count(*)from emp,deptwhere emp.deptno=dept.deptnogroup by to_char(hiredate,yyyy-mm),loc;25.查 询 部 门 平 均 工 资 最 高 的 部 门 名 称 和 最 低 的 部 门 名 称 select dname from dept where deptno=(select deptno from(selectdeptno from emp group by deptno order by avg(sal)whererownum=l)union all select dname from dept where deptno=(select deptno from(select deptno from emp group by deptno order by avg(sal)desc)where rownum=l);26.对 每 一 个 雇 员,显 示 employee_id、last_name、salary和 salary增 加 15%,并 且 表 示 成 整 数,列 标 签 显 示 为 New_SalarySELECT employee_id,last_name,salary,ROUND(salary*1.15,0)New SalaryFROM employees;27.写 一 个 查 询 用 首 字 母 大 写,其 它 字 母 小 写 显 示 雇 员 的 last_names,显 示 名 字 的 长 度,对 所 有 名 字 开 始 字 母 是 J、A 或 M的 雇 员,给 每 列 一 个 适 当 的 标 签。用 雇 员 的 last_names排 序 结 果。SELECT INITCAP(last_name)Name,LENGTH(last_name)LengthFROM employeesWHERE last_name LIKE J%OR last_name LIKE M%OR last_name LIKE A%ORDER BY last_name;28.对 每 一 个 雇 员,显 示 其 last_nam e,并 计 算 从 雇 员 受 雇 日 期 到 今 天 的 月 数,歹!J标 签 MONTHS_WORKED。按 受 雇 月 数 排 序 结 果,四 舍 五 入 月 数 到 最 靠 近 的 整 数 月。SELECT last_name,ROUND(MONTHS_BETWEEN(SYSDATE,hire_date)MONTHS.WORKEDFROM employeesORDER BY MONTHS_BETWEEN(SYSDATE,hire_date);.显 示 last_name、hire_date和 雇 员 开 始 工 作 的 周 日,列 标 签 为 DAY,以 星 期 一 作 为 周 的 起 始 日 排 序 结 果。SELECT last_name,hire_date,TO_CHAR(hire_date,DAY)DAYFROM employeesORDER BY TO_CHAR(hire_date-1,d);LASTNAME HIREDATE DAYGrant 24-MAY-99 MONDAYErnst 21-MAY-91 TUESDAYMourgos 16-NOV-99 TUESDAYTaylor 24-MAR-98 TUESDAYRajs 17-OCT-95 TUESDAYGietz 07-JUN-94 TUESDAYHiggins 07-JUN-94 TUESDAYKing 17-JUN-87 WEDNESDAYDe Haan 13-J AN-93 WEDNESDAYDavies 29-JAN-97 WEDNESDAYHunold 03-JAN-90 WEDNESDAYKochhar 21-SEP-89 THURSDAYWhalen 17-SEP-87 THURSDAYVargas 09-JUL-98 THURSDAYMatos 15-MAR-98 SUNDAY第 6 章 视 图 与 序 列 6.CREATE VIEW VW_DEPT_SUM(DEPT_NAME,EMP_COUNT,MINSAL,MAXSAL,AVGSAL)ASSELECT dname,count(empno),min(sal),max(sal),avg(sal)FROM dept d left join emp e on e.deptno=d.deptnoGROUP BY dname7.CREATE VIEW VW_EMP_AVGASSELECT e.ename,e.sal,d.dname,s.avgsalFROM emp e,(select deptno,AVG(sal)avgsal from emp GROUPBY deptno)s,dept dWHERE e.deptno=s.deptno AND s.deptno=d.deptno ANDe.sals.avgsal第 7 章 PL/SQL基 础 12、declaretype emp_table_type is table of emp%rowtype;emp_table emp_table_type;beginselect e.*bulk collect into emp_tablefrom emp e,dept dwhere e.deptno=d.deptno and d.dname=&dname;for i in l.emp_table.count loopdbms_output.put_line(emp_table(i).empnoH,|emp_table(i).ename|r,|emp_table(i).hiredate|,|emp_table(i).deptno);END LOOP;end;13、declarev_salary emp.sal%type;v_addsal number;beginselect sal into v_salary from empwhere empno=&empno;dbms_output.put ine(原 工 资:|v_salary);if v_salary 10000 thenv_addsal:=0.1;elsif v_salary5000 thenv_addsal:=0.2;elsev_addsal-0.3;end if;update empset sal=sal*(1+v_addsal)where empno=&empno;select sal into v_salary from empwhere empno=&empno;dbms_output.put ine(增 长 后 工 资:|v_salary);end;第 8 章 PL/SQL进 阶 22、编 写 一 个 数 据 包,它 有 两 个 函 数 和 两 个 过 程 以 操 作 emp”表。该 数 据 包 要 执 行 的 任 务 为:a)插 入 一 个 新 雇 员;删 除 一 个 现 有 雇 员;显 示 指 定 雇 员 的 整 体薪 水(薪 水+佣 金);显 示 指 定 雇 员 所 在 部 门 名 称。create or replace package emppack asprocedure insrec(pempno emp.empno%type,penameemp.ename%type,pjob emp.job%type,pmgr emp.mgr%type,phiredate emp.hiredate%type,psal emp.sal%type,pcomm m%type,pdeptno emp.deptno%type);procedure delrec(pempno in number);function selsal(pempno number)return number;function seldname(pempno number)return varchar2;end;create or replace package body emppack asprocedure insrec(pempno emp.empno%type,penameemp.ename%type,pjob emp.job%type,pmgr emp.mgr%type,phiredate emp.hiredate强 type,psal emp.sal%type,pcomm m%type,pdeptno emp.deptno%type)isbeginin s e rt in to emp values(pempno,pename,pjob,pmgr,p h ired ate,p sal,pcomm,pdep tn o);dbms_output.put ine(T record is created.*);end in s r e c;procedure d elrec(pempno in number)i sbegind e le te from emp where empno=pempno;dbms_output.p u t_ lin e(1 record is d e le te d.);end d e lre c;fu n ctio n selsal(pem pno number)re tu rn numberi svtotalsal number;beginselect nvl(sal,0)+nvl(comm,0)into vtotalsalfrom empwhere empno=pempno;return vtotalsal;end selsal;function seldname(pempno number)return varchar2i svdname dept.dname%type;beginselect dname into vdnamefrom emp,deptwhere empno=pempno and emp.deptno=dept.deptno;return vdname;end seldname;end;-执 行 包 中 的 过 程 和 函 数 execemppack.insrec(1111/goldens,manager,7698,to_date(J 2003-01-18,,,yyyy-mm-dd),2000,400,30);exec emppack.delrec(1111);declaresalary number;beginsalary emppack.selsal(7369);dbms_output.put_line(4total salary is salary);end;/declaredepartment varchar2(30);begindepartmentemppack.seldname(7369);dbms_output.put_line(department name is department);end;b)编 写 一 个 函 数 以 检 查 所 指 定 雇 员 的 薪 水 是 否 有 效 范 围 内。不 同 职 位 的 薪 水 范 围 为:designation raiseclerk 1500-2500salesman 2501-3500analyst 3501-4500others 4501 and above.如 果 薪 水 在 此 范 围 内,则 显 示 消 息”salary is ok,否 则,更 新 薪 水 为 该 范 围 内 的 最 水 值。create or replace function sal_level(no emp.empno%type)returnvarchar2 asvjob emp.job%type;vsal emp.sal%type;vmesg varchar2(50);beginselect job,sal into vjob,vsal from emp where empno=no;if vjob=,clerk thenif vsal=1500 and vsal=2500 thenvmesg:=salary is ok.;elsevsal:=1500;vmesg:=have updated your salary to C|to_char(vsal);end if;elsif vjob=salesman thenif vsal=2501 and vsal=3501 and vsal=4501 thenvmesg:=salary is ok/;elsevsal:=4501;vmesg:=have updated your salary to5|to_char(vsal);end if;end if;update emp set sal=vsal where empno=no;return vmesg;end;/declarevmesg varchar2(50);vempno emp.empno%type;beginvempno&empno;vmesg:=sal_level(vempno);dbms_output.put_line(vmesg);end;/select empno,ename,sal,comm,hiredate from emp whereempno=:no;

    注意事项

    本文(oracle课后部分习题答案.pdf)为本站会员(无***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开