Oracle数据库应用与开发教材课后习题参考答案_第1页
Oracle数据库应用与开发教材课后习题参考答案_第2页
Oracle数据库应用与开发教材课后习题参考答案_第3页
Oracle数据库应用与开发教材课后习题参考答案_第4页
Oracle数据库应用与开发教材课后习题参考答案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

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

5、racleOracle主目录名 称 ” a Application Development” “SQLPlus”进 入Windows环境下的图形窗口(2)方法二:点击 开始“一汕行 f输入“cmd命令 f进入 DOS环境下执行SQLPLUS命令也可以打开SQL*Plus工具。方式三:在IE浏览器地址栏中输入|习题一、 填空题1 .数据、日志、控制、初始化参数数据 控制 初始化参数2 .表空间、段、盘区、数据块 盘区数据块3 .数据段盘区4 .用户进程 服务进程 后台进程 用户进程 服务进程5 .数据重做日志6 .修改过的数据 数据文件7 .重做日志缓冲区内的日志重做日志8 .日志条目归档日志设

6、备归档9 .共享服务器专有服务器共享服务器共享服务器二、简答题1. Oracle数据库的物理存储结构式从物理组成的角度分析一个数据 库在存储介质上的实际构成,它是由操作系统组织和管理的,是Oracle数据库的外部存储结构。(1)数据文件:数据文件时 Oracle数据库用来存储各种数据的地 方,如表中的记录、索引数据、系统数据和临时数据等。(2)日志文件:在 Oracle中,日志文件记录了用户对数据的修改 信息(如增加、删除、修改),名字通常为READ*.LOG格式。(3)控制文件:控制文件时 Oracle数据库的物理文件之一,它是 一个很小的二进制文件,记录了数据库的名称、数据文件和连 击日志

7、文件的名称及位置、当前的日志序列号、表空间等信息。(4)参数文件:参数文件中记录着数据库名称、控制文件的路径、 SGA的内存结构、可选的 Oracle特性和后台进程的配置参数 等信息。2.(1) Oracle数据库逻辑存储结构是 Oracle数据库创建后利用逻辑 概念来描述数据库内部数据的组织和管理形式。包括表空间、 段、区和块四种。(2)表空间和数据文件的关系:数据库中的一个表空间至少包含一 个或多个数据文件,而一个数据文件只能属于一个表空间。 这 种关联实现了数据库的逻辑存储结构和物理存储结构的统一。3.(1)数据库实例是用户访问数据库的中间层,是使用数据库的手 段,它为用户访问数据库提供

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

9、器端配置一、文件作用于Oracle数据库服务器端,是 Oracle监听服务的配置文件。当客户端向服务器提交连接请求时,由监 听服务接受并对连接账号进行有效验证,验证通过后将用 户进程交给服务进程处理。若该文件被破坏,将影响监听 服务的正常使用。习题一、 选择题1. C 2. C 3. B二、简答题1. 一个方案只能被一个数据库用户拥有,并且方案名称与这个用户 的名称相同。创建新用户时系统自动创建该用户的方案。数据库 的每一个用户都拥有一个唯一的方案。该用户创建的方案对象默 认被保存在自己的方案中。2. CREATE USER创建新用户命令:(1) USER-NAME :新创建的用户名称。(2)

10、 PASSWORD:为新用户制定密码。(3) DEFAULT TABLESPACE:为新用户指定默认表空间。用来储 存该用户创建的方案对象。(4) TEMPORARY TABLESPACE:为用户指定临时表空间,存储 操作过程中产生的临时数据。(5) QUOAT:为新用户指定磁盘配额,表示该用户在指定的空间中 可以占用的最大磁盘空间。(6) UNLIMITED:表示该用户可以使用无限大的空间。(7) PROFILE:指定新用户使用的配置文件。(8) PASSWORD expire:表示新用户密码过期,登陆后需要给出新 密码。(9) ACCOUNT lock/unlock :表示用户加锁/解锁状

11、态。其中,用户名和密码是必须有的。三、操作题1. CREATE USER ORA_TEMPIDENTIFIED BY TEM;2. ALTER USER ORA_TEMPIDENTIFIED BY ORA;3. ALTER USER ORA_TEMPACCOUNT LOCK;实验1.a) create table student(sno char(10) primary key,sname varchar2(8),sex char(2) default 男check(sex=1f or sex=),birthday date,sdept char(20);b) create table cou

12、rse(cno char(10) primary key,cname char(30) unique,ccredit number(3);c) create table score(sno char(10) references student(sno),cno char(10) references course(cno),grade number(3) check(grade=0 and gradesal;(4) select * from where commsal*;(5) select * fromwhere (deptno=10 and job=MANAGER) or(deptno

13、=20 and job=CLERK);(6) select * fromwhere job not in(MANAGER,CLERK)andsal=2000;(7) select * from where comm is not null;(8) select count(empno),avg(sal) from ;(9) select * from where comm is null or comm100(10) select * fromwhere (sysdate-hiredate)/365=10;(12) select initcap(lower(ename) from ;(13)

14、select * fromwhere length(ename)=6;(14) select * from where ename not like %S%;(15) select * from where ename like _M%;(16) select substr(ename,1,3) from ;(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;(

15、20) select ename,extract(year from hiredate) as 年份,extract(monthfrom hiredate) as 月份 from order by 月份,年份;(21) select deptno,count(*),avg(sal),avg(sysdate-hiredate)/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)30

16、00;(24) select deptno,job,max(sal) from group by deptno,job;(25) select count(*),avg(sal) from group by job;习题1. C 2. A 3. A 4. A 5. C 7. B 8. C 9. A 10. B习题(1)select ename,dname from t1 inner join t2 on = where job=CLERK;(2)select * from t1 right join t2 on =select * from t1 left join t2 on =用子查询实现

17、:select * from where deptno=(select deptno from where dname=SALES)用连接查询实现:select * from t1 inner join t2 on = where =SALES;注意两种实现方式,在行和列上的变化。(5)简单自连接select as 员工姓名,经理姓名 from t1, t2 where =;(6)select as 员工姓名,经理姓名 from t1, t2 where = and select , from t1 cross join t2 where = and select as 员工姓名,经理姓名 f

18、rom t1, t2 where = and =10;(9)select * from where sal2500unionselect * from where job=ANALYST(10)select * from where sal2500intersectselect * from where job=ANALYST(11)select * from where sal2500minusselect * from where job=ANALYST;(12)select * from where sal(select avg(sal) from(13)select * from wh

19、ere job=(select job from where ename=SMITH)(14)select * from where sal(select sal from where ename=SMITH)(15)select ename,sal from where salall(select sal from where deptno=30)(16)select * from where deptno in (select deptno from group by deptno having count(*)5);(17)select * from where deptno in(se

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

21、deptno in(select deptno from group by deptno having count(*)=1)(20)本题关键是使用相关子查询做条件select * from e where sal(select avg(sal) from group by deptno having =deptno);(21)本题关键是使用两个子查询的结果进行内连接查询select * from(select * from e where sal(select avg(sal) from group by deptno having =deptno) t1 inner join(select

22、 avg(sal),deptno from group by deptno) t2 on =;(22)select * from where deptno in(select distinct deptno from where empno in(select distinct mgr from );(23)select * from t1, t2 where = and in(select deptno from group bydeptno having avg(sal)100;end loop;(和是:|s);end;whlie循环实现:declarei number default 1

23、;s number default 0; beginwhile i=100 loops:=s+i;i:=i+1;end loop;(和是:|s);end;for循环实现:declares number default 0; beginfor i in 1.100 loops:=s+i;end loop;(和是:|s);end;2.显示游标的for循环:declarecursor curl is select ename,sal from ;beginfor rec in cur1 loop| |;end loop;end;隐式游标的for循环:beginfor rec in (select ename,sal from loop| |;end loop;end;习题一、选择题1. A 2, C 3. B 4. D 5, A二、编程题2.步骤一:授予system用户对具有显示的查询权限sqlplus system/abcdefalter user scott account unlock;connect scott/tiger;grant select on emp to system;connect system/abcdef;步骤二:创建存储过程set serveroutput on create or replace p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论