Oracle练习题.pdf_第1页
Oracle练习题.pdf_第2页
Oracle练习题.pdf_第3页
Oracle练习题.pdf_第4页
Oracle练习题.pdf_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

一、填空 1在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进 程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵 语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须使用关键字Distinct; 在需要 返回查询结果中的所有行时,可以使用关键字ALL。 4.当进行模糊查询时,应使用关键字like和通配符问号(?)或百分 号“%“。 5.Where子句可以接收From子句输出的数据,而HAVING子句则可以接 收来自WHERE、FROM或GROUP BY子句的输入。 6.在SQL语句中,用于向表中插入数据的语句是Insert。 7.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使 用Select语句。 8.使用Describe命令可以显示表的结构信息。 9.使用SQL*Plus的Get命令可以将文件检索到缓冲区,并且不执行。 10.使用Save命令可以将缓冲区中的SQL命令保存到一个文件中,并且可 以使用Run命令运行该文件。 11.一个模式只能够被一个数据库对象所拥有,其创建的所有模式对象 都保存在自己的模式中。 12.根据约束的作用域,约束可以分为表级约束和列级约束两种。列级 约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义 独立于列的定义,它可以应用于一个表中的多个列。 13.填写下面的语句,使其可以为Class表的ID列添加一个名为 PK_CLASS_ID的主键约束。 ALTER TABLE Class Add _ PK_LASS_ID (Constraint) PRIMARY KEY _ (ID) 14. 每个Oracle 10g数据库在创建后都有4个默认的数据库用户:system、 sys、sysman和DBcnmp 15. Oracle提供了两种类型的权限:系统权限和对象权限。系统权限提供 了在Oracle数据库系统范围内执行某种任务的操作能力,而对象权限则 是一种赋予用户在指定的数据库对象(如表、视图、过程等) 16. Oralce数据库在进行物理备份有联机备份和脱机备份两种方式可供选 择。 . 17. 从存储结构的角度来说,Oracle数据库可分为物理结构和逻辑结构。 18. 表空间是Oracle数据库中数据的逻辑组织,每个数据库至少有一个 SYSTEM系统表空间。 19.视图是一个表示表的数据的数据库对象,它允许用户从一个表或一 组表中通过一定的查询语句建立一个“虚表”。 20.序列是一种可被多个用户使用的用于产生一系列唯一数字的数据库 对象。尤其适合多用户环境中,可以生成唯一的序列号而没有磁盘I/O 或事务处理锁定开销。 21. 一个表空间具有离线(OFFLINE)、在线(ONLINE)、只读(READ ONLY)、读写(READ WRITE)状态。 二、选择 1在全局存储区SGA中,哪部分内存区域是循环使用的?( B ) A数据缓冲区 B日志缓冲区 C 共享池 D大池 2如果一个服务器进程非正常终止,Oracle系统将使用下列哪一个进程 来释放它所占用的资源?( D ) ADBWR BLGWR C SMON DPMON 3. 如果要查询数据库中所有表的信息,应当使用下列哪种数据字典视 图?( A ) A. DBA视图 B. ALL视图 C. USER视图 D. 动态性能视图 4. 下列哪一项是Oracle数据库中最小的存储分配单元? ( C ) A. 表空间 B. 段 C. 盘区 D. 数据块 5. 下面的各选项中哪一个正确描述了Oracle数据库的逻辑存储结构? ( A ) A. 表空间由段组成,段由盘区组成,盘区由数据块组成 B. 段由表空间组成,表空间由盘区组成,盘区由数据块组成 C. 盘区由数据块组成,数据块由段组成,段由表空间组成 D. 数据块由段组成,段由盘区组成,盘区由表空间组成 6. 下列的哪个子句在SELECT语句中用于排序结果集?( D ) A. Having子句 B. Where子句 C. From子句 D. Order by子句 7. Having子句的作用是( B )。 a. 查询结果的分组条件 B. 组的筛选条件 C. 限定返回的行的判断条件 D. 对结果集进行排序 8. 下列哪个函数可以把一个列中的所有值相加求和? ( B ) A MAX B. SUM C. COUNT D. AVG 9. 下列哪个子句是SELECT语句中必选项?( A ) A. FROM B.WHERE C.HAVING D. ORDER BY 10. 下列哪个子句实现对一个结果集进行分组和汇总?( D ) AHAVING B. ORDER BY C. WHERE D. GROUP BY 11. 查询一个表的总记录数,可以采用_统计函数。( C ) A. AVG(*) B. SUM(*) C. COUNT(*) D.MAX(*) 12. 要建立一个语句向Types表中插入数据,这个表只有两列,T_ID和 T_Name列。如果要插入一行数据,这一行的T_ID值是100,T_Name值 是RFUIT。应该使用的SQL语句是_。( A ) A. INSERT INTO Type Values(100, FRUIT) B. SELECT * FROM Type WHERE T_ID=100 AND T_NAME=FRUIT C. UPDATE SET T_ID=100 FROM Types WHERE T_Name=FRUIT D. DELET * FROM Types WHERE T_ID=100 AND T_Name=FRUIT 13. 用_语句修改表的一行或多行数据。( A ) AUpdate B.set C.Select D.Where 14. 使用什么命令可以清除表中所有的内容? ( D ) AINSERT B.UPDATE C. DELETE D.TRUNCATE 15.关于模式的描述下列哪一项不正确?( C ) A表或索引等模式对象一定属于某一个模式 B在Oracle数据库中,模式与数据库用户是一一对应的 C一个表可以属于多个模式 D一个模式可以拥有多个表 16.唯一约束与主键约束的一个区别是?( D ) A唯一约束的列的值不可以有重复值 B唯一约束的列的值可以不是唯一的 C唯一约束的列不可以为空值 D唯一约束的列可以为空值 17. 只能存储一个值的变量是哪种变量?( B ) A. 游标 B. 标量变量 C. 游标变量 D. 记录变量 18. 声明%TPYE类型的变量时,服务器将会做什么操作?( A ) A. 为该变量检索数据库列的数据类型 B复制一个变量 C检索数据库中的数据 D为该变量检索列的数据类型和值 19.下列哪一项可以正确地引用该记录变量中的一个值?( B ) Arec_abc(1) B. rec_abc(1).col C. rec_abc.col D.rec_abc.first() 20. 在定义游标时使用的FOR UPDATE子句的作用是_。( C ) A执行游标 B. 执行SQL语句的UPDATE语句 C对要更新表的列进行加锁 D. 都不对 21. 如果允许用户对视图进行更新和插入操作,但是又要防止用户将不 符合视图约束条件的记录添加到视图,应当在定义视图时指定下列哪一 个子句?( C ) AWITH GRANT OPTION B. WITH READ ONLY C. WITH CHECK OPTION D. WITH CHECK ONLY 22. 如果想查看视图中哪些字段是可以更新的,应当查询哪一个数据字 典视图?( D ) A. DBA_VIEWS B. DBA_OBJECTS C. DBA_CLU_COLUMNS D. DBA_UPDATABLE_COLUMNS 23. 在下列各选项中,关于序列的描述哪一项是不正确的?( D ) A. 序列是Oracle提供的用于产生一系列唯一数字的数据库对象 B序列并不占用实际的存储空间 C使用序列时,需要用到序列的两个伪列NEXTVAL与CURRVAL。其 中,NEXTVAL 将返回序列生成的下一个值,而CURRVAL返回序列的 当前值 D在任何时候都可以使用序列的伪列CURRVAL,以返回当前序列值 24. 在下列各选项中,关于同义词的描述哪一项是不正确的?( B ) A同义词是数据库对象的一个替代名,在使用同义词时,Oracle会将 其翻译为对应的对象名称 B在创建同义词时,所替代的模式对象必须存在 COracle中的同义词分为公有同义词和私有同义词 D公有同义词在数据库中所有的用户都可以使用;私有同义词由创建 它的用户所拥有 25. 下列哪个锁模式不属于Oracle?( D ) A. 共享锁 B.排他锁 C. 行级共享锁 D. 死锁 26. 想在另一个模式中创建表,用户最少应该具有什么系统权限?( B ) ACREATE TABLE B. CREATE ANY TABLE C. RESOURCE D. DBA 27. 如果要启用所有角色,则应该使用哪一个命令?( B ) ASET ROLE ALL B. SET ROLE ENABLE ALL C. ALTER SESSION ALL D.ALTER USER ROLE ALL 28. 下列哪一个操作可以用来为一个备份操作手动分配通道?( A ) AALLOCATE CHANNEL B. CREATE CHANNEL C. CHANNEL ALLOCATE D. CREATE LINK 29. 下列哪一个命令用来显示RMAN通道的配置信息?( C ) A. LIST B. DISPLAY C.SHOW D.都可以 30. 下列哪一个命令可以用来执行不完全恢复?( B ) A. RESTORE DATABASE UNTIL B. RECOVER DATABASE UNTIL C. RECOVER DATA UNTIL D. RESTORE DATA UNTIL 三、简答题 1. 说明数据库模式与用户之间的区别。 答案: 数据库模式与用户之间的区别在于:用户是数据库的使用者和管理 者,用户具有帐户状态、访问权限和操作权限等属性。模式是一系列逻 辑数据结构或对象的集合,是数据库中对象的组织和管理单位。 2. 简要游标的作用和游标操作的基本步骤。 答案: 游标的作用是将数据库的中数据检索出来后缓存,可以被PL/SQL 程序一行一行的读取并处理。支持一条、多条、零条记录的处理。 游标的基本操作步骤为: (1)声明游标,使用查询来定义游标的列和行 (2)打开游标,使用PL/SQL命令OPEN来打开一个声明的游标 (3)提取数据,从游标中重复提取每条记录到数据结构中,直到数 据集合被提交 (4)关闭游标,使用完游标后将其关闭 3Oracle数据库的工作模式有哪两种?它们之间有有何区别? 答案: 在Oracle数据库中,数据库的操作模式分为专用服务器 (DELICATED SERVER)模式和多线程服务器(MULTITHREADED SERVER)模 式两种。其中,在专用服务器模式中为每个用户进程创建一个服务器进 程,用户进程与服务器进程之间是1:1的关系;在共享服务器模式中, 一个服务器进程可以为多个用户进程服务器。 4.说明数据库内存结构中SGA和PGA的组成,以及这两个内存区存放信 息的区别。 答案: SGA区由数据缓冲区、共享池、重做日志缓冲区、大型池、JAVA 池构成;PGA区由排序区、私有SQL区以及堆栈构成。SGA区是由 Oracle分配的共享内存结构,包含一个数据库实例共享的数据和控制信 息。当多个用户同时连接同一个实例时,SGA区数据供多个用户共享, 所以SGA区又称为共享全局区。用户对数据库的各种操作主要在SGA区中 进行。该内存区随数据库实例的创建而分配,随实例的终止而释放。 PGA区是在用户进程连接数据库,创建一个会话时,由Oracle为用户分 配的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为 私有全局区。每个服务器进程只能访问自己的PGA区,所有服务器进程 PGA区总和即为实例的PGA区的大小。 5. 说明数据库表空间的种类,以及不同类型表空间的作用。 答案: 数据库表空间分为系统表空间和非系统表空间两类,其中非系统表 空间包括撤销表空间、临时表空间和用户表空间等。 SYSTEM表空间主要用于存储数据库的数据字典、PL/SQL程序的 源代码和解释代码、数据库对象的定义。撤销表空间专门进行回退信息 的自动管理。临时表空间是专门进行临时段管理的表空间。用户表空间 用于分离不同应用的数据,而且能够减少读取数据文件时产生的I/O冲 突。 6. 说明Oracle 10g数据库文本初始化参数文件与服务器初始化参数文件 的区别。 答案: 文本初始化参数文件是一个本地的初始化参数文件,而服务器初始 化参数文件是一个放在数据库服务器端的共享的二进制初始化参数文 件。文本参数文件的修改是通过直接对文本的修改实现的,通过命令行 是无法将修改后的参数值写入该文件中,而服务器初始化参数文件是不 能直接修改的,必须通过ALTER SYSTEM语句来进行参数修改的。 7. 简述PL/SQL程序结构及各个部分的作用。 答案: PL/SQL程序的基本单元是语句块,所有的PL/SQL程序都是由语句 块构成的,语句块之间可以相互嵌套,每个语句块完成特定的功能。 声明部分:以关键字DECLARE开始,BEGIN结束。主要用于 声明变量、常量、数据类型、游标、异常处理名称以及本地 (局部)子程序定义等。 执行部分:是PL/SQL块的功能实现部分,以关键字BEGIN开 始,EXCEPTION或END结束(如果PL/SQL块中没有异常处 理部分,则以END结束)。该部分通过变量赋值、流程控 制、数据查询、数据操纵、数据定义、事务控制、游标处理 等实现块的功能。 异常处理部分:以关键字EXCEPTION开始,END结束。该部分用于处 理该块执行过程中产生的异常。 8. 说明触发器的种类和对应的作用对象、触发事件。 答案: 触发器包括DML触发器、INSTEAD-OF触发器和系统触发器。其 中,DML触发器主要作用于表,其事件有INSERT、UPDATE、 DELETE;INSTEAD-OF触发器主要主用于视图,其事件有INSERT、 UPDATE、DELETE;系统触发器主要是DML事件和系统事件发生时调 用的触发器,其中DML事件包括CREATE、DROP、ALTER等,系统事 件包括LOGON、LOGOFF、STARTUP、SHUTDOWN、 SERVERERROR等。 9简述Oracle数据库角色的种类、作用,以及如何利用角色为用户授 权。 答案: Oracle数据库中角色分为系统预定义的角色和用户自定义的角色两 类。角色是一系列权限的集合,可以先将权限授予角色,然后将角色授 予具有相同权限的用户。 四、求解题 现有关系数据库如下: S(SNO,SNAME,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY) 其中,S为供应商,包含属性的含义依次是供应商代码、供应商名 字、供应商所在城市;P为零件,包含属性的含义依次是零件代码、零 件名字、颜色、重量;J为工程项目,包含属性的含义依次是工程项目 代码、工程项目名字、工程项目所在城市;SPJ为供货关系,包含属性 的含义依次是供应商代码、零件代码、工程项目代码,某供应商向某个 项目供应数量的零件数量。 请用SQL语言完成如下问题: (1)查询供应工程J1零件P1的供应商号码SNO (2)查询供应工程J1零件为红色的供应商号码SNO (3)查询没有使用北京供应商生产的红色零件的工程号JNO 五、设计题(E-图) 六、PL/SQL语言程序设计题。 设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每 个班有若干个学生: 现要建立关于系、学生、班级的数据库,关系模式为: 班CLASS(班号classid,专业名subject,系名deptname,入学年份 enrolltime,人数num) 学生STUDENT(学号studentid,姓名name,年龄age,班号classid) 系DEPARTMENT(系号deptid,系名deptname) 试用PL/SQL语言完成以下功能: 1 建表,在定义中要求声明: (1) 每个表的主外键。 (2) 每个班级的人数不能超过30人。 (3) 学生的年龄介于15到40岁之间。 (4) 学生姓名不能为空。 2 插入如下数据 CLASS表 classidsubjectdeptnameenrolltimenum 101软件计算机199520 102微电子计算机199630 111无机化学化学199529 112高分子化 学 化学199625 121统计数学数学199520 131现代语言中文199620 141国际贸易经济199730 142国际金融经济199614 STUDENT表 studentidnameageclassid 8101张三18101 8102钱四16121 8103王玲17131 8105李飞19102 8109赵四18141 8110李可20142 8201张飞18111 8302周瑜16112 8203王亮17111 8305董庆19102 8409赵龙18101 8510李丽20142 DEPARTMENT表 deptiddeptname 001数学 002计算机 003化学 004中文 005经济 3 学校又新增加了一个物理系,编号为006 4 学生张三退学,请更新相关的表。 1、有一张表test,有3个字段id,name,parentid。parentid是指父亲的id, 请写一个sql语句,找出当过爷爷的id和name。 2、有一张学生表student,字段有student_id,name,即学号,名字。 还有一张选课表,字段有student_id,lesson_id。 还有一张课程表,字段lesson_id,lesson_name。 学生和课程是多对多的关系。 写一个sql语句,找出所有选了全部课程的学生。 3、有一张表person表,字段有id,name,age。age是年龄。 写一个sql语句,找出年龄最接近的2个人。 如有下面4条记录: 1,a,18 2,b,20 3,c,25 4,d,26 则输出3,4 emp表和dept表完成下列练习 Emp员工表 empno ename job Mgr Hiredate Sal Comm Deptno 员工号 员工姓名 工作 上级编号 受雇日期 薪金 佣金 部门编号 Dept表 Deptno Dname Loc 部门编号 部门名称 地点 1列出至少有一个员工的所有部门。 select dept_id from s_emp where userid is not null; 2列出薪金比“chad”多的所有员工。 select id,salary from s_emp where salary(select salary from s_emp where first_name=Chad); 3列出所有员工的姓名及其直接上级的姓名。 select l.first_name as yuangong,e.first_name as laoban from s_emp e,s_emp l where e.manager_id=l.id(+); 4列出受雇日期早于其直接上级的所有员工。 select l.first_name as yuangong,e.first_name as laoban from s_emp e,s_emp l where e.manager_id=l.id(+) and l.start_datee.start_date; 5列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。 6列出所有“CLERK”(办事员)的姓名及其部门名称。 7列出最低薪金大于1500的各种工作。 8列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的 部门编号。 9列出薪金高于公司平均薪金的所有员工。 10列出与“SCOTT”从事相同工作的所有员工。 11列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。 12列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。 13列出在每个部门工作的员工数量、平均工资和平均服务期限。 14列出所有员工的姓名、部门名称和工资。 15列出从事同一种工作但属于不同部门的员工的一种组合。 16列出所有部门的详细信息和部门人数。 17列出各种工作的最低工资。 18列出各个部门的MANAGER(经理)的最低薪金。 19列出所有员工的年工资,按年薪从低到高排序。 原文:/showtopic-524.aspx Oracle习题二附答案 使用scott/tiger的emp表完成练习 更多编程相关:/showforum-11.aspx 答案: 1. select distinct dname from dept where deptno in (select distinct deptno from emp); 要查部门编号如果存在于emp 表中,说明这个部门有员工。 2. select ename,job,mgr,hiredate,sal from emp where sal (select sal from emp where ename=SMITH); 3. select e.ename, e.mgr , w.ename from emp e, emp w where e.mgr=w.empno; 4. select e.ename, e.mgr , e.hiredate,w.ename,w.hiredate from emp e, emp w where e.mgr=w.empno and e.hiredate1500; 8. select e.ename,d.dname from emp e,dept d -1、列出至少有一个雇员的所有部门 select distinct dname from dept where deptno in (select distinct deptno from emp); -2、列出薪金比“SMITH“多的所有雇员 select ename,sal from emp where sal(select sal from emp where ename=upper(smith); -3、列出所有雇员的姓名及其直接上级的姓名 select e.ename,m.ename from emp e,emp m where e.mgr=m.empno(+); -4、列出入职日期早于其直接上级的所有雇员 select ename from emp e where hiredate1500; -8、列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号 select ename from emp where deptno = (select deptno from dept where dname=uppder(SALES) -9、列出薪金高于公司平均水平的所有雇员 select ename from emp where sal(select avg(sal) from emp); -10、列出与“SCOTT”从事相同工作的所有雇员 select ename from emp where job=(select job from emp where ename=upper(scott); -11、列出某些雇员的姓名和薪金,条件是他们的薪金等于部门30中任何一个雇员的薪金 select ename,sal from emp where sal in (select sal from emp where deptno=30); -12、列出某些雇员的姓名和薪金,条件是他们的薪金高于部门30中所有雇员的薪金 select ename ,sal fro

温馨提示

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

评论

0/150

提交评论