oracle教程(第二版)》部分习题参考答案
oracle练习题及答案

oracle练习题及答案Oracle练习题及答案Oracle是一种强大的关系数据库管理系统,被广泛应用于企业级应用程序和数据管理中。
为了帮助大家更好地掌握Oracle数据库的知识,以下是一些Oracle练习题及答案,希望能够帮助大家更好地理解和掌握Oracle数据库的知识。
1. 什么是Oracle数据库?Oracle数据库是一种关系数据库管理系统,由美国Oracle公司开发。
它是一种高性能、可靠性高的数据库系统,被广泛应用于企业级应用程序和数据管理中。
2. Oracle数据库的特点有哪些?Oracle数据库具有以下特点:高性能、高可用性、可伸缩性、安全性高、灵活性强、易管理等。
3. 如何创建一个新的数据库用户?在Oracle数据库中,可以使用以下SQL语句来创建一个新的数据库用户:```CREATE USER username IDENTIFIED BY password;```4. 如何查看Oracle数据库中所有的表?可以使用以下SQL语句来查看Oracle数据库中所有的表:```SELECT table_name FROM user_tables;```5. 如何在Oracle数据库中插入一条新的记录?可以使用以下SQL语句来在Oracle数据库中插入一条新的记录:```INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);```6. 如何在Oracle数据库中更新一条记录?可以使用以下SQL语句来在Oracle数据库中更新一条记录:```UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;```7. 如何在Oracle数据库中删除一条记录?可以使用以下SQL语句来在Oracle数据库中删除一条记录:```DELETE FROM table_name WHERE condition;```通过以上Oracle练习题及答案的学习,相信大家对Oracle数据库有了更深入的了解。
Oracle第二章习题及答案

一、基于自己创建表的操作1:创建一张学生表student,拥有stuid,stuname,sex,三个字段,其中stuid为主键。
create table student(stuid int primary key,stuname VARCHAR(20),sex VARCHAR(20))2:为该表增加一个新列score。
alter table student add(score varchar(10));3:修改该表score列名为stuscore。
alter table student rename column score to stuscoree;4:为student表插入5条记录。
insert into student values(1,'张三丰','男',80);insert into student values(2,'阿悄','女',70);insert into student values(3,'陈龙','男',90);insert into student values(4,'章子怡','女',50);insert into student values(5,'张卫健','男',60);5:查询student表中的全部数据,其中列名为中文。
select STUID as 学号,STUNAME as 姓名,SEX as 性别,STUSCOREE as 分数from student;6:查询学生姓名和分数,并是查询结果按照学生成绩降序排列。
select STUNAME,STUSCOREE from student order by STUSCOREE desc;7:修改所有性别为“男”的学生信息为性别为“male”。
update student set SEX='male' where SEX='男';8:删除所有记录。
oracle习题答案

oracle习题答案Oracle习题答案Oracle数据库是全球领先的企业级关系型数据库管理系统,被广泛应用于各种企业和组织中。
学习Oracle数据库管理是IT从业人员必备的技能之一,因此掌握Oracle习题答案对于提升自己的技能水平至关重要。
在学习Oracle数据库管理的过程中,经常会遇到各种习题和练习题,通过解答这些习题可以加深对Oracle数据库的理解和掌握。
下面我们就来看一些常见的Oracle习题以及它们的答案。
1. 什么是Oracle数据库?答:Oracle数据库是由美国Oracle公司开发的一款关系型数据库管理系统,它是一种高性能、可靠性强的数据库系统,被广泛应用于企业级应用中。
2. 如何创建一个新的数据库用户?答:可以使用CREATE USER语句来创建一个新的数据库用户,例如:CREATE USER new_user IDENTIFIED BY password;3. 如何查询表中的数据?答:可以使用SELECT语句来查询表中的数据,例如:SELECT * FROM table_name;4. 如何删除数据库中的数据表?答:可以使用DROP TABLE语句来删除数据库中的数据表,例如:DROP TABLE table_name;5. 如何备份Oracle数据库?答:可以使用RMAN工具来备份Oracle数据库,例如:RMAN> BACKUP DATABASE;通过解答这些习题,我们可以加深对Oracle数据库管理的理解和掌握,提升自己的技能水平。
希望以上Oracle习题答案对大家有所帮助,也希望大家在学习Oracle数据库管理的过程中能够不断提升自己的技能,成为一名优秀的数据库管理人员。
oracle 10g数据库基础教程(第2版)孙风栋主编 课后实训答案

1.为USERS表空间添加一个数据文件,文件名为USERS03.DBF,大小为50MB。
alter tablespace users add datafile 'd:\users03.dbf' size 50m;2.为EXAMPLE表空间添加一个数据文件,文件名为example02.dbf,大小为20MB。
alter tablespace example add datafile 'd:\example02.dbf' size 20m;3.修改USERS表空间中的userdata03.dbf为自动扩展方式,每次扩展5MB,最大为100MB。
alter database datafile 'd:\userdata03.dbf' autoextend on next 5m maxsize 100m;4.修改EXAMPLE表空间中的example02.dbf文件的大小为40MB。
alter database datafile 'd:\example02.dbf' resize 40m;5.将表空间USERS中的数据文件USERS03.DBF更名为userdata04.dbf,将表空间EXAMPLE中的数据文件example03.dbf更名为example04.dbf。
alter tablespace users offline;在磁盘d:\手动更改users03.dbf为userdata04.dbfalter tablespace users rename datafile 'd:\users03.dbf' to 'd:\userdata04.dbf';alter tablespace example offline;在磁盘d:\手动更改example03.dbf为example04.dbfalter tablespace example rename datafile 'd:\example03.dbf' to 'd:\example04.dbf';7.为数据库添加一个重做日志文件组,组内包含两个成员文件,分别为redo4a.log和redo4b.log,大小分别为5MB。
oracle数据库实用教程第二版答案

oracle数据库实用教程第二版答案【篇一:oracle 11g(钱慎一)课后习题答案】若关系的某一属性组的值能唯一地标识一个元组,我们称之为( b )。
a、主码b、候选码c、外码d、联系2. 以下不属于数据库模型的三要素的是( c )。
a、数据结构b、数据操作c、数据控制d、完整性约束3. 以下对关系性质的描述中,哪个是错误的?( b )a、关系中每个属性值都是不可分解的b、关系中允许出现相同的元组c、定义关系模式时可随意指定属性的排列次序d、关系中元组的排列次序可以任意交换二、填空题1. 数据管理发展的三个阶段是人工管理、文件管理和数据库管理。
2. 数据库系统的三级模式包括逻辑数据模型(逻辑模型)、逻辑数据模型(概念模型)、物理数据模型(物理模型)。
三、思考题1. 数据库管理系统的主要功能有哪些?1)数据定义功能。
dbms提供相应数据语言来定义(ddl)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。
2)数据存取功能。
dbms提供数据操纵语言(dml),实现对数据库数据的基本存取操作:检索,插入,修改和删除。
3)数据库运行管理功能。
dbms提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。
4)数据库的建立和维护功能。
包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
5)数据库的传输。
dbms提供处理数据的传输,实现用户程序与dbms之间的通信,通常与操作系统协调完成。
2. 思考关系规范化的过程。
答:对于存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。
3. 思考数据库设计的步骤。
答:1需求分析、2概念设计阶段、3逻辑结构设计阶段、4数据库物理结构设计阶段、5数据库实施阶段、6数据库运行和维护阶段。
Oracle 11g数据库基础教程(第2版)参考答案

Oracle 11g数据库基础教程(第2版)参考答案第1章Oracle 11g数据库安装与配置1.简答题(1)企业版数据库服务器包含所有的数据库组件,主要针对高端的应用环境,适用于安全性和性能要求较高的联机事务处理(OLTP)、查询密集型的数据仓库和要求较高的Internet应用程序:标准版数据库服务器提供大部分核心的数据库功能和特性,适合于工作组或部门级的应用程序:个人版数据库服务器只提供基本数据库管理功能和特性,适合单用户的开发环境,为用户提供开发测试平台。
(2)常用数据库类型包括事务处理类、数据仓库类以通用类型。
其中事务处理类型主要针对具有大量并发用户连接,并且用户主要执行简单事务处理的应用环境。
事务处理数据库的典型应用有银行系统数据库、Internet电子商务数据库、证券交易系统数据库等。
对于需要较高的可用性和事务处理性能、存在大量用户并行访问相同数据以及需要较高恢复性能的数据库环境,事务处理类型的配置可以提供最佳性能;数据仓库类型的数据库主要针对有大量的对某个主题进行复杂查询的应用环境。
数据仓库的典型应用有客户订单研究、支持呼叫、销售预测、采购模式以及其他战略性业务问题的历史数据研究。
对于需要对大量数据进行快速访问,以及复杂查询的数据库环境,数据仓库类型配置是最佳选择;通用类型配置的数据库是事务处理数据库与数据仓库配置的折衷方案。
既可以支持大量并发用户的事务处理,又可以快速对大量历史数据进行复杂的数据扫描和处理。
(3)数据库名可以由字母、数字、下划线(_)、#和美元符号($)组成,且必须以字母开头,长度不超过30个字符。
在单机环境中,可以不设置域名,域名长度不能超过128个字符。
Oracle服务标识符(SID)是一个Oracle实例的唯一名称标识,长度不能超过12个字符。
(4)● OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务,是数据库启动的基础,只有该服务启动,Oracle数据库才能正常启动。
oracle课后习题答案

第一章一选择题D D C A D D B二填空题1 视图2 索引3 簇4 DB_Block_size5 system6 数据文件日志文件控制文件7系统全局区SGA 程序全局区PGA三简答题1 P3——P52 P7——P83 P94 P13第二章一选择题B D B二填空题1 orcl2 oracle_sid3 OracleOraDb10g_home1TNSListener第三章一选择题D B B二填空题1 emctl start dbconsole2 主目录性能管理维护3 Oracle Net4 v$database第四章一选择题D C C A二填空题1 shutdown immediate2 startup force3 alter database4 spfile5 db_block_size6 alter system set7 数据库管理员安全官员网络管理员应用程序开发员应用程序管理员数据库用户三操作题4 P635 P65第五章一选择题B C D二填空题1 v$tablespace2 create tablespace3 bigfile4 alter tablespace5 offline6 alter logfile member2 P75——P763 P764 P77——P785 P816 P83第六章一选择题B A A B D二填空题1 grant2 v$pwfile_users3 create user4 password expire5 account lock6 alter role三操作题3 P95第七章一选择题B BC C二填空题1 primary key2 rename column…to3 where4 like5 inner join三操作题2 create table departments(depid number primary key,Depname varchar2(40) not null,Descr varchar(400),Upperid number check(upperid>0));注意:书上的desc是保留字,不能作为表名。
oracle数据库实用教程第二版答案

oracle数据库实用教程第二版答案oracle数据库实用教程第二版答案【篇一:oracle 11g(钱慎一)课后习题答案】若关系的某一属性组的值能唯一地标识一个元组,我们称之为( b )。
a、主码b、候选码c、外码d、联系2. 以下不属于数据库模型的三要素的是( c )。
a、数据结构b、数据操作c、数据控制d、完整性约束3. 以下对关系性质的描述中,哪个是错误的?( b )a、关系中每个属性值都是不可分解的b、关系中允许出现相同的元组c、定义关系模式时可随意指定属性的排列次序d、关系中元组的排列次序可以任意交换二、填空题1. 数据管理发展的三个阶段是人工管理、文件管理和数据库管理。
2. 数据库系统的三级模式包括逻辑数据模型(逻辑模型)、逻辑数据模型(概念模型)、物理数据模型(物理模型)。
三、思考题1. 数据库管理系统的主要功能有哪些?1)数据定义功能。
dbms提供相应数据语言来定义(ddl)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。
2)数据存取功能。
dbms提供数据操纵语言(dml),实现对数据库数据的基本存取操作:检索,插入,修改和删除。
3)数据库运行管理功能。
dbms提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。
4)数据库的建立和维护功能。
包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
5)数据库的传输。
dbms提供处理数据的传输,实现用户程序与dbms之间的通信,通常与操作系统协调完成。
2. 思考关系规范化的过程。
答:对于存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。
3. 思考数据库设计的步骤。
答:1需求分析、2概念设计阶段、3逻辑结构设计阶段、4数据库物理结构设计阶段、5数据库实施阶段、6数据库运行和维护阶段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文字性习题答案参见相应章节内容第1章习题1D A C C第2章习题1执行edit命令打开文本编辑器;使用column命令设置列显示宽度习题2CONN scott/tiger@orclSELECT * FROM tab; --本题严谨一些的答案是查询ALL_OBJECTS视图,带条件查询习题3@d:\init_data\init_data.sql习题4SET PAGESIZE 24SET LINESIZE 100COLUMN sal FORMA T $99,990.00第3章习题1D B习题2CONN stu01/stu01pwd@orclCOLUMN USERNAME FORMA T A10SELECT username,granted_role FROM user_role_privs;习题5CREA TE SESSION 系统权限习题11CONN scott/tiger@orclCOLUMN GRANTEE FORMA T A10SELECT grantee,table_name,grantor,privilege,grantableFROM user_tab_privs_made;习题12CONN system/systempwd@orclCOLUMN GRANTEE FORMA T A22SELECT grantee,privilege,admin_option FROM dba_sys_privsORDER BY grantee,privilege;SELECT grantee,granted_role FROM dba_role_privs;使用REVOKE命令回收不必要的系统权限和角色。
\第4章习题8CONN /@cemerp AS SYSDBAALTER USER scott QUOTA 10M ON USERS;习题9CONN system/systempwd@orclCREA TE TABLESPACE data_ts1DA TAFILE '%ORACLE_BASE%\oradata\orcl\data_ts1.dbf' SIZE 10000M REUSE; CREA TE TEMPORARY TABLESPACE temp_ts1TEMPFILE '%ORACLE_BASE%\oradata\orcl\temp_ts1.dbf' SIZE 200M REUSE; CREA TE USER surtec IDENTIFIED BY surtecpwdDEFAULT TABLESPACE data_ts1 TEMPORARY TABLESPACE temp_ts1; GRANT CREA TE SESSION TO surtec;GRANT RESOURCE TO surtec;CONN surtec/surtecpwd@orcl--创建该用户的表emp……--授权给SIBGRANT SELECT ON emp TO sib;GRANT UPDA TE(flag) ON endowment_insurance TO sib;习题10CONN system/systempwd@orclCREA TE USER test01 IDENTIFIED BY test1234;GRANT CREA TE SESSION TO test01;GRANT CREA TE TABLESPACE TO test01;CONN test01/test1234@orclCREA TE TABLESPACE test_tsDA TAFILE '%ORACLE_BASE%\oradata\orcl\test_ts.dbf' SIZE 100KAUTOEXTEND ON NEXT 50K MAXSIZE 5M UNIFORM SIZE 50K;ALTER TABLESPACE test_tsADD DA TAFILE '%ORACLE_BASE%\oradata\orcl\test_ts2.dbf' SIZE 10M; ALTER DA TABASEDA TAFILE '%ORACLE_BASE%\oradata\orcl\test_ts2.dbf' RESIZE 15M ;习题11CONN system/systempwd@orclALTER TABLESPACE pur_tsADD DA TAFILE '%ORACLE_BASE%\oradata\orcl\pur_data.dbf' SIZE 800M; ALTER DA TABASEDA TAFILE '%ORACLE_BASE%\oradata\orcl\pur_data.dbf' RESIZE 2000M ; ALTER DA TABASE DA TAFILE '%ORACLE_BASE%\oradata\orcl\pur_data.dbf' AUTOEXTEND ON NEXT 30M;第5章习题1B A习题8(1)撤销表空间中不允许建立永久方案对象;将方案对象建立在数据表空间即可。
(2)在脱机表空间上不允许执行创建方案对象操作;将该表空间联机即可。
(3)使用ALTER USER修改用户在USERS表空间上的限额即可。
(4)使用ALTER USER修改用户,扩大在USERS表空间上的限额即可。
习题9CONN hr/hrpwd@orclCREA TE TABLE employees2 ASSELECT employee_id id, first_name, last_name, salary,department_id dept_idFROM employees;习题10CONN scott/tiger@orclALTER TABLE empADD (dept_id NUMBER(7));ALTER TABLE empADD CONSTRAINT emp_dept_id_fkFOREIGN KEY (dept_id) REFERENCES dept(deptno);习题11假定数据库用户为hr(1)CONN hr/hrpwd@orclCREA TE TABLE g_emp(EMPNO NUMBER(4) NOT NULL,ENAME V ARCHAR2(10),JOB V ARCHAR2(10),MGR NUMBER(4),HIREDA TE DA TE,SAL NUMBER(7,2),COMM NUMBER(7,2),DEPTNO NUMBER(3))PARTITION BY RANGE (sal)(PARTITION SAL_1000 V ALUES LESS THAN (1000) tablespace users,PARTITION SAL_2000 V ALUES LESS THAN (2000) tablespace users,PARTITION SAL_3000 V ALUES LESS THAN (3000) tablespace users,PARTITION SAL_4000 V ALUES LESS THAN (4000) tablespace users,PARTITION SAL_5000 V ALUES LESS THAN (5000) tablespace users,PARTITION SAL_max V ALUES LESS THAN (MAXV ALUE) tablespace users);(2)DESC g_emp(3)--创建表空间CONN system/systempwd@orclCREA TE TABLESPACE hiredate_tsDA TAFILE '%ORACLE_BASE%\oradata\orcl\hiredate_ts1.dbf' SIZE 1M REUSE; --创建表CONN hr/hrpwd@orclCREA TE INDEX emp_hiredate_indexON g_emp(HIREDA TE DESC)TABLESPACE hiredate_ts;(4)ALTER TABLE g_emp DROP (COMM);ALTER TABLE g_emp ADD(bonus NUMBER(7,2));第6章略第7章习题1(1)CONN scott/tiger@orclCREA TE SEQUENCE id_seqINCREMENT BY 1START WITH 1MAXV ALUE 99999NOCACHENOCYCLE;(2)可以修改序列的定义;或者修改产品表主键的定义。
习题2参见例7.1。
习题4使用数据字典DBA_DB_LINKS习题5在总部建立指向各分店的数据库链接,然后在分店服务器建立实体化视图日志,在总店建立各分店个表的实体化视图。
第8章习题1A DBC B习题4(1)SELECT worker.ename ename, manager.ename managerFROM emp worker, emp managerWHERE worker.mgr=manager.empno;(2)SELECT worker.ename, worker.empno, worker.deptno, manager.enameFROM emp worker, emp managerWHERE worker.mgr=manager.empno AND worker.hiredate< manager.hiredate;(3)SELECT e.enameFROM emp e,dept dWHERE e.deptno=d.deptno AND upper(d.dname)='IT';(4)SELECT ename,empno,deptno, job, salFROM empWHERE sal>(SELECT avg(sal)FROM emp );(5)SELECT d.deptno, count(e.ename), avg(e.sal),avg(months_between(sysdate,e.hiredate))FROM emp e, dept dWHERE e.deptno(+)= d.deptnoGROUP BY d.deptno;(6)SELECT d.deptno,d.dname,d.loc,e.numFROM (SELECT deptno,count(ename) numFROM empGROUP BY deptno) e, dept dWHERE e.deptno(+)= d.deptno;(7)SELECT job,min(sal+nvl(comm,0)) FROM emp GROUP BY job;(8)SELECT ename,deptno,minsalFROM emp,(SELECT min(sal) minsal FROM empWHERE job=upper('manager')) bWHERE emp.job=upper('manager') AND emp.sal=b.minsal;或者用内嵌视图,执行Top-N查询(9)SELECT ename , sal*12 Annual_salFROM empORDER BY Annual_sal ASC;习题5SELECT last_name, ROUND(MONTHS_BETWEEN(SYSDA TE, hire_date)) MONTHS_WORKEDFROM employeesORDER BY MONTHS_BETWEEN(SYSDA TE, hire_date);习题6SELECT st_name, e.hire_dateFROM employees e, employees daviesWHERE st_name = 'Davies'AND davies.hire_date < e.hire_date;习题8SELECT last_name,department_id,TO_CHAR(null)FROM employeesUNIONSELECT TO_CHAR(null),department_id,department_nameFROM departments;习题9创建表的语句如下CREATE TABLE T_PRTSTRUDEF(PRTNO Varchar2(24), --物料号PRTPNO varchar2(24), --父件号PRTPQTY number(20,7), --需求数量PRTDESC Varchar2(30), --物料名称PRTTYPE Varchar2(1), --物料类型PRTPRC Number(18,3), --单价,下一字段是计量单位PRTUM Varchar2(8));--插入示例数据,P-表示产品 D-表示部件 M-表示零件(仅为了举例)INSERT INTO T_PRTSTRUDEF VALUES('WD01','',0,'床','P',850,'张');INSERT INTO T_PRTSTRUDEF VALUES('WD0101','WD01',1,'床头','D',100,'套'); INSERT INTO T_PRTSTRUDEF VALUES('WD0102','WD01',2,'床头柜','D',80,'个'); INSERT INTO T_PRTSTRUDEFVALUES('WD010201','WD0102',1,'柜门','D',15,'扇');INSERT INTO T_PRTSTRUDEFVALUES('WD010202','WD0102',1,'床头柜身','D',65,'个');INSERT INTO T_PRTSTRUDEFVALUES('WD01020101','WD010201',1,'柜门板','M',13,'张'); INSERT INTO T_PRTSTRUDEFVALUES('WD01020102','WD010201',1,'拉手','M',2,'个'); COMMIT;--查询整个产品SELECT LEVEL 部件层次,SUBSTRB(LPAD(' ',2*(LEVEL-1))||PRTDESC,1,30) 产品结构, PRTPQTY 需求数量, PRTPRC 单价FROM T_PRTSTRUDEFSTART WITH PRTPNO IS NULLCONNECT BY PRIOR PRTNO = PRTPNO;执行结果如下:部件层次产品结构需求数量单价-------- ------------------------ ---------- ---------1 床 0 8502 床头 1 1002 床头柜 2 803 柜门 1 154 柜门板 1 134 拉手 1 23 床头柜身 1 65--查询柜门的子件SELECT LEVEL 部件层次,SUBSTRB(LPAD(' ',2*(LEVEL-1))||PRTDESC,1,30) 产品结构, PRTPQTY 需求数量, PRTPRC 单价FROM T_PRTSTRUDEFSTART WITH PRTNO='WD010201'CONNECT BY PRIOR PRTNO = PRTPNO;执行结果如下:部件层次产品结构需求数量单价-------- -------------------------- -------- --------1 柜门 1 152 柜门板 1 132 拉手 1 2--查询柜门的父件(反查)SELECT LEVEL 部件层次,SUBSTRB(LPAD(' ',2*(LEVEL-1))||PRTDESC,1,30) 产品结构, PRTPQTY 需求数量, PRTPRC 单价FROM T_PRTSTRUDEFSTART WITH PRTNO='WD010201'CONNECT BY PRIOR PRTPNO = PRTNO;执行结果如下:部件层次产品结构需求数量单价-------- ------------------------ ---------- --------1 柜门 1 152 床头柜 2 803 床 0 850第9章习题1A C习题2CONN scott/tiger@orclSET serveroutput ONCREATE OR REPLACE PROCEDURE check_salISCURSOR emp_cursor IS SELECT empno,ename,deptno,sal,job FROM emp;BEGINFOR emp_rec IN emp_cursor LOOPIF emp_rec.job = 'CLERK' AND emp_rec.sal NOT BETWEEN 1500 AND 2500 THENDBMS_OUTPUT.PUT_LINE(emp_rec.deptno||':'||emp_rec.e mpno||':'||emp_rec.ename| |':'||emp_rec.sal);ELSIF emp_rec.job = 'SALESMAN' AND emp_rec.sal NOT BETWEEN 800 AND 5000 THENDBMS_OUTPUT.PUT_LINE(emp_rec.deptno||':'||emp_rec.empno||':'||emp_rec.ename| |':'||emp_rec.sal);ELSIF emp_rec.job = 'MANAGER' AND emp_rec.sal NOT BETWEEN 3000 AND 4500 THENDBMS_OUTPUT.PUT_LINE(emp_rec.deptno||':'||emp_rec.empno||':'||emp_rec.ename| |':'||emp_rec.sal);ELSIF emp_rec.job = 'ANALYST' AND emp_rec.sal NOT BETWEEN 2500 AND 3500 THENDBMS_OUTPUT.PUT_LINE(emp_rec.deptno||':'||emp_rec.empno||':'||emp_rec.ename| |':'||emp_rec.sal);END IF;END LOOP;END;/EXECUTE check_sal习题3SET ECHO OFFSET VERIFY OFFDEFINE low_date = 01/01/1998DEFINE high_date = 01/01/1999SELECT last_name ||', '|| job_id 雇员职位, hire_dateFROM employeesWHERE hire_date BETWEEN TO_DATE('&low_date', 'MM/DD/YYYY')AND TO_DATE('&high_date', 'MM/DD/YYYY')/UNDEFINE low_dateUNDEFINE high_dateSET VERIFY ONSET ECHO ON习题4--创建表CREATE TABLE messages(results VARCHAR2(100));--本题答案DECLAREv_ename st_name%TYPE;v_sal employees.salary%TYPE := &p_sal;BEGINSELECT last_nameINTO v_enameFROM employeesWHERE salary = v_sal;INSERT INTO messages (results)VALUES (v_ename || ' - ' || v_sal);EXCEPTIONWHEN no_data_found THENINSERT INTO messages (results)VALUES ('No employee with a salary of '|| TO_CHAR(v_sal)); WHEN too_many_rows THENINSERT INTO messages (results)VALUES ('More than one employee with a salary of '||TO_CHAR(v_sal));WHEN others THENINSERT INTO messages (results)VALUES ('Some other error occurred.');END;/习题5--创建相关表CREATE TABLE call_fee_account(telno VARCHAR2(20),pay_date DATE,charge NUMBER(7,2),late_fee NUMBER(7,2));--创建函数CREATE OR REPLACE FUNCTION fee(p_date DATE) RETURN NUMBER ISv_fee NUMBER;BEGINSELECT SUM(charge+NVL(late_fee,0))INTO v_feeFROM call_fee_accountWHERE pay_date = p_date;RETURN v_fee;END;/习题6可参考例9.20,该例子是删除(delete),本题中为修改(update)。