您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 12计算机_Oracle数据库试卷A卷答案
第1页共8页北京交通职业技术学院期末考试试题答案2013—2014学年第二学期12计算机专业课程名称:1Oracle数据库(A)卷出题教师:孙继亮一、选择题(每题1分,共10题,共10分)1、B2、B3、B4、D5、B6、ACD7、C8、C9、D10、A二、填空题(每空2分,共10空,共20分)[1]Connectmartin/martinpass@aptech[2]Grantselectonscott.emptomartin[3]Select*fromemployeewhere1=2[4]To_char[5]NVL[6]even_number[7]1..25[8]SELECTenameINTOempnameFROMemployeeWHEREempno=eno;[9]EXCEPTION[10]OPENtoy_cur第2页共8页三、简答(每题10分,共4题,共40分)1、绑定变量是什么?绑定变量有什么优缺点?绑定变量是指在SQL语句中使用变量,改变变量的值来改变SQL语句的执行结果。优点:使用绑定变量,可以减少SQL语句的解析,能减少数据库引擎消耗在SQL语句解析上的资源。提高了编程效率和可靠性。减少访问数据库的次数,就能实际上减少ORACLE的工作量。缺点:经常需要使用动态SQL的写法,由于参数的不同,可能SQL的执行效率不同;绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询bindvalue在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的争用,节省shared_pool缺点是不能使用histogram,sql优化比较困难2、简单描述tablespace/segment/extent/block之间的关系tablespace:一个数据库划分为一个或多个逻辑单位,该逻辑单位成为表空间;每一个表空间可能包含一个或多个Segment;Segments:Segment指在tablespace中为特定逻辑存储结构分配的空间。每一个段是由一个或多个extent组成。包括数据段、索引段、回滚段和临时段。Extents:一个extent由一系列连续的Oracleblocks组成.ORACLE为通过extent来给segment分配空间。DataBlocks:Oracle数据库最小的I/O存储单位,一个datablock对应一个或多个分配给datafile的操作系统块。table创建时,默认创建了一个datasegment,每个datasegment含有minextents指定的extents数,每个extent据据表空间的存储参数分配一定数量的blocks3、日志的作用是什么?第3页共8页日志文件(LogFile)记录所有对数据库数据的修改,主要是保护数据库以防止故障,以及恢复数据时使用。其特点如下:a)每一个数据库至少包含两个日志文件组。每个日志文件组至少包含两个日志文件成员。b)日志文件组以循环方式进行写操作。c)每一个日志文件成员对应一个物理文件。记录数据库事务,最大限度地保证数据的一致性与安全性重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复,一个数据库至少需要两个重做日志文件归档日志文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。4、Oracle系统进程主要有哪些,作用是什么?数据写进程(DBWR):负责将更改的数据从数据库缓冲区高速缓存写入数据文件日志写进程(LGWR):将重做日志缓冲区中的更改写入在线重做日志文件系统监控(SMON):检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复进程监控(PMON):负责在一个Oracle进程失败时清理资源检查点进程(CKPT):负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。归档进程(ARCH):在每次日志切换时把已满的日志组进行备份或归档恢复进程(RECO):保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;作业调度器(CJQ):负责将调度与执行系统中已定义好的job,完成一些预定义的工作.四、程序题(每题10分,共3题,共30分)第4页共8页1、查找出当前用户模式下,每张表的记录数,以scott用户为例,结果应如下:DEPT...................................4EMP...................................14BONUS.................................0SALGRADE.............................5其实现的代码是:declaretypetab_namesistableofvarchar2(20)indexbybinary_integer;tab_nametab_names;counnumber;strvarchar2(100);beginselecttable_namebulkcollectintotab_namefromuser_tables;foriintab_name.first..tab_name.lastloopstr:='selectcount(*)from'||tab_name(i);executeimmediatestrintocoun;dbms_output.put_line(tab_name(i)||'..........'||coun);endloop;end;2、某cc表数据如下:c1c2--------------第5页共8页1西1安1的2天2气3好……转换为1西安的2天气3好要求:不能改变表结构及数据内容,仅在最后通过SELECT显示出这个查询结果代码为:createorreplacefunctionxreturnvarchar2istypet_arrayistableofnumberindexbybinary_integer;typetarrayistableofvarchar2(10)indexbybinary_integer;tat_array;tartarray;revarchar2(10);nnumber;navarchar2(10);beginselectidbulkcollectintotafrom(selectid,namefromxxorderbyid)groupbyid;第6页共8页foriinta.first..ta.lastloopdbms_output.put(ta(i)||'');selectnamebulkcollectintotarfromxxwhereid=ta(i);foriintar.first..tar.lastloopdbms_output.put(tar(i));endloop;dbms_output.put_line('');endloop;returnre;end;3、表nba记录了nba(teamVARCHAR2(10),yNUMBER(4))夺冠球队的名称及年份:TEAMY--------------------------------------------------活塞1990公牛1991公牛1992公牛1993火箭1994火箭1995公牛1996公牛1997公牛1998马刺1999湖人2000湖人2001湖人2002第7页共8页马刺2003活塞2004马刺2005热火2006马刺2007凯尔特人2008湖人2009湖人2010请写出一条SQL语句,查询出在此期间连续获得冠军的有哪些,其连续的年份的起止时间是多少,结果如下:TEAMBE--------------------------------------------------------------公牛19911993火箭19941995公牛19961998湖人20002002湖人20092010selectmax(nn.team)team,min(nn.y)B,max(nn.y)+1Efrom(selectn2.team,n2.yfrom(select*fromnba)n1join(select*fromnba)n2onn1.team=n2.teamwheren1.y=n2.y+1)nngroupby(nn.y-rownum)orderbyB第8页共8页
本文标题:12计算机_Oracle数据库试卷A卷答案
链接地址:https://www.777doc.com/doc-3060131 .html