Oracle数据库应用与开发课后习题参考答案.pdf

上传人:奔*** 文档编号:89828915 上传时间:2023-05-13 格式:PDF 页数:21 大小:1.81MB
返回 下载 相关 举报
Oracle数据库应用与开发课后习题参考答案.pdf_第1页
第1页 / 共21页
Oracle数据库应用与开发课后习题参考答案.pdf_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《Oracle数据库应用与开发课后习题参考答案.pdf》由会员分享,可在线阅读,更多相关《Oracle数据库应用与开发课后习题参考答案.pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、习题:1.(1)关系型数据库管理系统,简 称RDBMS。是在博士发表的论文 大规模共享数据银行的关系型模型 基础上设计出来的。它通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据。RDBMS是SQ L的基础,同样也是所有现代数据库系统的基础。(2)在关系型数据库中,标准二维表是基本的数据存储单元,里边存储了实体的属性和实体间的关系。2.关系型数据库中,表与表之间包括的三种关系是:一对一、一对多和多对多。(1)一对一:有两个表,表A和 表B。表A中的一条记录在表B中有一条记录与之对应。反过来,表B中的一条记录在表A中也仅有一条记录与之对应。(2)一对多:有两个表,表A和 表B。表A中

2、的一条记录在表B中有多条记录与之对应。反过来,表B中的一条记录在表A中仅有一条记录与之对应。(3)多对多:有两个表,表A和 表B。表A中的一条记录在表B中有多条记录与之对应。反过来,表B中的一条记录在表A中也有多条记录与之对应。3.Oracle 10g提供了四个版本,分别是:Oracle 10g标 准 版1、Oracle10g标准版、Oracle 10g企业版、Oracle 10g个人版。4.(1)客户机/服务器结构:简 称C/S结构,是软件系统的一种体系结构。数据库和数据库管理系统运行在服务器端,各 种Oracle管理工具运行在客户机上,二者通过SQL*NET进行通信。(2)浏览器/服务器结

3、构:简称B/S结构,是随着Web技术兴起后的一种新型软件系统结构。它通常分为三层:数据库服务器,用来存储和管理数据库;应用程序服务器,与数据库服务器进行交互完成各种数据处理工作;客户端浏览器,与应用程序服务器进行交互,负责提交数据处理请求并获得和显示结果。5.(1)SYS:该用户被默认创建并授予DBA角色,它 是Oracle数据库中权限最大的管理员账号。数据库中所有数据字典的基本表和视图都被存储在SY S的方案中,这些基本表和视图对于Oracle数据库的操作非常重要。为了维护数据字典的正确性和完整性,SYS方案中的表只能由系统维护,不能被任何用户或数据库管理员修改,而且任何用户不能在SYS方案

4、中创建表。(2)SYSTEM:被默认创建并授予DBA角色权限仅次于SYS。该用户创建和管理数据库中可显示管理信息的表或视图,以及被Oracle数据库应用和工具使用的各种数据库对象。(3)SYSMAN:该用户是企业管理的超级管理员账号,该账号能够创建和修改其他管理员账号,同时也能管理数据库实例。(4)DBSNMP:是 Oracle 数据库中用于智能代理(Intelligent Agent)的用户,用来监控和管理数据库相关性能。如果停止该用户,则无法提取相关的数据库信息。6.(1)方法一:点击“开始”一“程序”一 “Oracle-“Application DevelopmentSQL Plus”进

5、入Windows环境下的图形窗口(2)方法二:点击“开始”一“运行”一 输入“cm d命令”一 进入DOS环境下执行SQLPLUS命令也可以打开SQL*Plus工具。方式三:在 IE浏览器地址栏中输入I习题一、填空题1.数据、日志、控制、初 始 化 参 数 数 据 控 制 初 始 化 参 数2.表空间、段、盘区、数据块盘区数据块3.数 据 段 盘 区4.用 户进程服务进程后台进程用户进程服务进程5.数据重做日志6.修改过的数据数据文件7.重做日志缓冲区内的日志重做日志8.日志条目 归档日志设备 归档9.共享服务器专有服务器共享服务器共享服务器二、简答题1.Oracle数据库的物理存储结构式从物

6、理组成的角度分析一个数据库在存储介质上的实际构成,它是由操作系统组织和管理的,是Oracle数据库的外部存储结构。(1)数据文件:数据文件时Oracle数据库用来存储各种数据的地方,如表中的记录、索引数据、系统数据和临时数据等。(2)日志文件:在Oracle中,日志文件记录了用户对数据的修改信 息(如增加、删除、修改)名 字 通 常 为READ*.LOG格式。(3)控制文件:控制文件时Oracle数据库的物理文件之一,它是一个很小的二进制文件,记录了数据库的名称、数据文件和连击日志文件的名称及位置、当前的日志序列号、表空间等信息。(4)参数文件:参数文件中记录着数据库名称、控制文件的路径、SG

7、A的内存结构、可选的Oracle特性和后台进程的配置参数等信息。2.(1)Oracle数据库逻辑存储结构是Oracle数据库创建后利用逻辑概念来描述数据库内部数据的组织和管理形式。包括表空间、段、区和块四种。(2)表空间和数据文件的关系:数据库中的一个表空间至少包含一个或多个数据文件,而一个数据文件只能属于一个表空间。这种关联实现了数据库的逻辑存储结构和物理存储结构的统一。3.(1)数据库实例是用户访问数据库的中间层,是使用数据库的手段,它为用户访问数据库提供了必要的内存空间和多个Oracle进程,它是动态的、临时的。一 个Oracle实例由内存空间和Oracle进程两部分组成。(2)数据库和

8、数据库实例是相辅相成、缺一不可的。如果只有数据库的物理文件,只能说明有数据被存储在数据库中,但是无法直接访问。如果只有数据库实例,说明为数据库的使用做好了准备、可以访问数据库,但不知道要操作的数据在哪里。4.(1)客户端配置a)文件用于指定数据库连接账号的验证方式以及连接字符串的解析方式,也就是说通过该文件决定怎样查找一个连接中出现的连接字符串的定义。b)文件时Oracle客户端的另一个重要文件,用来定义客户端连接远程服务器时的主机字符串。(2)服务器端配置一、文件作用于Oracle数据库服务器端,是Oracle监听服务的配置文件。当客户端向服务器提交连接请求时,由监听服务接受并对连接账号进行

9、有效验证,验证通过后将用户进程交给服务进程处理。若该文件被破坏,将影响监听服务的正常使用。习题一、选择题1.C2.C3.B二、简答题1.一个方案只能被一个数据库用户拥有,并且方案名称与这个用户的名称相同。创建新用户时系统自动创建该用户的方案。数据库的每一个用户都拥有一个唯一的方案。该用户创建的方案对象默认被保存在自己的方案中。2.CREATE USER仓惟新用户命令:(1)USER-NAME:新创建的用户名称。(2)PASSWORD:为新用户制定密码。(3)DEFAULT TABLESPACE:为新用户指定默认表空间。用来储存该用户创建的方案对象。(4)TEMPORARY TABLESPACE

10、:为用户指定临时表空间,存储操作过程中产生的临时数据。(5)QUOAT:为新用户指定磁盘配额,表示该用户在指定的空间中可以占用的最大磁盘空间。(6)UNLIMITED:表示该用户可以使用无限大的空间。(7)PROFILE:指定新用户使用的配置文件。(8)PASSWORD expire:表示新用户密码过期,登陆后需要给出新密码。(9)ACCOUNT lock/unlock:表示用户加锁/解锁状态。其中,用户名和密码是必须有的。三、操作题1.CREATE USER ORA TEMPIDENTIFIED BY TEM;2.ALTER USER ORA_TEMPIDENTIFIED BY ORA;3.

11、ALTER USER ORA_TEMPACCOUNT LOCK;实验1.a)create table student(sno char(10)primary key,sname varchar2(8),sex char(2)default,男,check(sex=男 or sex=女,),birthday date,sdept char(20);b)create table course(eno char(10)primary key,cname char(30)unique,ccredit number(3);c)create table score(sno char(10)referenc

12、es student(sno),eno char(10)references course(cno),grade number(3)check(grade=0 and gradesal;(4)select*from where commsal*;(5)select*from where(deptno=10 and job=MANAGER)or(deptno=20 and job=CLERK);(6)select*from where job not in(MANAGER,CLERK)andsal=2000;(7)select*from where comm is not null;(8)sel

13、ect count(empno),avg(sal)from;(9)select*from where comm is null or comm100(10)select*from where(sysdate-hiredate)/365=10;(12)select initcap(lower(ename)from;(13)select*from where length(ename)=6;(14)select*from where ename not like%S%;(15)select*from where ename like(16)select substr(ename,l,3)from;

14、(17)select replace(ename,s,S)from;(18)select ename,hiredate from order by hiredate;(19)select ename,job,sal from order by job desc,sal asc;(20)select ename,extract(year from hiredate)as 年份,extract(monthfrom hiredate)as 月份 from order by 月份,年份;(21)select deptno,count(*),avg(sal),avg(sysdate-hiredate)/

15、365)fromgroup by deptno;(22)select count(*),avg(sal)from group by deptno;(23)select min(sal),job from group by job having min(sal)3000;(24)select deptno,job,max(sal)from group by deptnojob;(25)select count(*),avg(sal)from group by job;习题l.C 2.A 3.A 4.A 5.C 7.B 8.C 9.A 10.B习题(1)select ename,dname fro

16、m tl inner join t2 on=where job=CLERK;select*from tl right join t2 on=select*from tl left join t2 on=(4)用子查询实现:select*from where deptno=(select deptno from wheredname=SALES)用连接查询实现:select*from tl inner join t2 on=where=SALES;注意两种实现方式,在行和列上的变化。(5)简单自连接select as 员工姓名,经理姓名 from tl,t2 where=;(6)select a

17、s 员工姓名,经理姓名 from tl,t2 where=and select from tl cross join t2 where=and(8)select as 员工姓名,经理姓名 from tl,t2 where=and=10;(9)select*from where sal2500unionselect*from where job=AN ALY ST(10)select*fromwhere sal2500intersectselect*fromwhere job=ANALYST(H)select*fromwhere sal2500minusselect*fromwhere job=

18、ANALYST;(12)select*fromwhere sal(select avg(sal)from(13)select*fromwhere job=(select job from where ename=SMITH)(14)select*fromwhere sal(select sal from where ename=SMITH)(15)select ename,sal from where salall(select sal from wheredeptno=30)(16)select*from where deptno in(select deptno from group by

19、 deptnohaving count(*)5);(17)select*from where deptno in(select deptno from group by deptnohaving min(sal)2000)(18)本题的关键是使用子查询作为数据源和查询的条件,可以从最里层的子查询开始理解select*from where deptno in(select deptno from(selectdeptno,count(*)as 人数 from group by deptno)where 人数=(selectmax(人数)from(select deptno,count(*)as

20、人数 from group bydeptno);(19)select*from where deptno in(select deptno from group by deptnohaving count(*)=l)(20)本题关键是使用相关子查询做条件select*from e where sal(select avg(sal)from group by deptnohaving=deptno);(21)本题关键是使用两个子查询的结果进行内连接查询select*from(select*from e where sal(select avg(sal)from groupby deptno ha

21、ving=deptno)tl inner join(select avg(sal),deptno from group by deptno)t2 on=;(22)select*from where deptno in(select distinct deptno from whereempno in(select distinct mgr from);(23)select*from tl,t2 where=and in(select deptno from group bydeptno having avg(sal)100;end loop;(和是:Ils);end;whlie循环实现:dec

22、larei number default 1;s number default 0;beginwhile i=100 loops:=s+i;i:=i+l;end loop;(和是:Ils);end;for循环实现:declares number default 0;beginfor i in 1.100 loops:=s+i;end loop;(和是:Ils);end;2.显示游标的for循环:declarecursor curl is select ename,sal from;beginfor rec in curl loopII ll;end loop;end;隐式游标的for循环:be

23、ginfor rec in(select ename,sal from loopII ll;end loop;end;习题一、选择题1.A 2.C 3.B 4.D 5.A二、编程题1.步骤一:授予system用户对具有显示的查询权限sqlplus system/abcdefalter user scott account unlock;connect scott/tiger;grant select on emp to system;connect system/abcdef;步骤二:创建存储过程set serveroutput oncreate or replace procedure p

24、1(id in cl is select*from where deptno=id;beginfor rec in c 1 loopII Illi ll;end loop;end;步骤三:执行存储过程execute pl(10);2.步骤一:授权connect scott/tiger;grant update on emp to system;步骤二:创建函数connect system/abcdef;create or replace function flreturn numberiscursor c2 is select*from for update;rows number default 0;a number(7,2);beginselect avg(sal)into a from;for rec in c2 loopif a thenupdate set sal=sal+200 where current of c2;rows:=rows+l;end if;end loop;return rows;end;步骤三:调用函数:begin(fl);end;第二种写法:create or replace function fun2return numberisbeginupdate set sal=sal+200 where sal update select 的显示权限。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

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