Oracle数据库笔试真题(含详细答案)_第1页
Oracle数据库笔试真题(含详细答案)_第2页
Oracle数据库笔试真题(含详细答案)_第3页
Oracle数据库笔试真题(含详细答案)_第4页
Oracle数据库笔试真题(含详细答案)_第5页
全文预览已结束

下载本文档

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

文档简介

Oracle数据库笔试真题(含详细答案)适用人群:Java/后端开发、数据库运维、数据开发岗位求职者题型说明:总分100分,包含选择题、填空题、简答题、SQL实操题,题目贴合企业真实面试、笔试场景,侧重基础核心、日常开发常用知识点。一、单项选择题(共10题,每题3分,共30分)1.在Oracle中,以下不属于DML语句的是()A.INSERTB.UPDATEC.ALTERD.DELETE答案:C解析:DML为数据操纵语言,包含INSERT、UPDATE、DELETE、SELECT;ALTER属于DDL数据定义语言,用于修改数据库对象结构。2.Oracle中用于事务提交的命令是()A.SAVEPOINTB.COMMITC.ROLLBACKD.EXIT答案:B解析:COMMIT提交事务,ROLLBACK回滚事务,SAVEPOINT设置事务保存点,EXIT用于退出客户端工具。3.以下关于Oracle主键和唯一索引的说法,正确的是()A.主键可以为空,唯一索引不能为空B.主键默认创建唯一索引且非空,唯一索引允许单个NULL值C.主键和唯一索引都可以存在多个NULL值D.唯一索引必须绑定主键使用答案:B解析:主键约束自带唯一、非空特性,自动生成唯一索引;普通唯一索引允许字段为NULL,且仅允许一条NULL记录,多条NULL会判定为重复。4.Oracle中模糊查询匹配任意多个字符的通配符是()A._B.%C.*D.?答案:B解析:%匹配0个或任意多个字符,_匹配单个任意字符;*、?不属于Oracle模糊查询通配符。5.以下哪种索引最适合用于频繁查询、极少修改的大表唯一字段()A.位图索引B.B树索引C.全文索引D.函数索引答案:B解析:B树索引是Oracle默认索引类型,适用于高基数、频繁查询的字段;位图索引适合低基数、数据更新少的字段。6.Oracle中ROWNUM的执行顺序是()A.SELECT->WHERE->ROWNUM->ORDERBYB.WHERE->ROWNUM->SELECT->ORDERBYC.WHERE->SELECT->ROWNUM->ORDERBYD.ROWNUM->WHERE->SELECT->ORDERBY答案:B解析:ROWNUM是伪列,先执行WHERE过滤数据,再分配行号,最后执行SELECT查询和ORDERBY排序,这也是直接用ROWNUM排序分页会出错的核心原因。7.以下不属于Oracle事务四大特性(ACID)的是()A.原子性B.连续性C.一致性D.隔离性答案:B解析:事务ACID特性为:原子性、一致性、隔离性、持久性,无连续性特性。8.在Oracle中,用于去除重复数据的关键字是()A.DISTINCTB.UNIQUEC.REMOVED.CLEAR答案:A解析:DISTINCT用于查询结果去重;UNIQUE是约束关键字,用于限制字段唯一性,无法用于查询去重。9.Oracle中表空间的最小存储单元是()A.数据块(Block)B.区(Extent)C.段(Segment)D.表空间答案:A解析:存储层级:数据块→区→段→表空间,数据块是Oracle最小的I/O存储单元。10.以下关于Oracle视图的描述,错误的是()A.视图不存储真实数据,仅存储SQL语句B.简单视图可以执行增删改操作C.视图可以提升数据安全性D.创建视图会占用大量磁盘空间答案:D解析:视图是虚拟表,仅保存查询逻辑,不存储物理数据,几乎不占用磁盘空间。二、填空题(共5题,每题4分,共20分)1.Oracle中事务默认______自动提交,执行DML语句后需手动COMMIT生效。答案:关闭2.实现Oracle分页查询,常用的两种伪列是ROWNUM和______。答案:ROWID3.Oracle中用于判断字段为空的关键字是______,不能使用=NULL判断。答案:ISNULL4.分组查询中,过滤分组后数据使用______子句,过滤分组前数据使用WHERE子句。答案:HAVING5.Oracle中______函数可以将字符串转为大写,LOWER函数将字符串转为小写。答案:UPPER三、简答题(共4题,每题7分,共28分)1.简述Oracle中WHERE和HAVING的区别?答案:(1)执行时机不同:WHERE是分组前过滤数据,先过滤再分组;HAVING是分组后过滤分组结果,先分组再过滤。(2)使用范围不同:WHERE后不能使用聚合函数(SUM、COUNT、MAX等);HAVING专门用于过滤聚合函数结果。(3)优先级不同:WHERE执行效率更高,可提前过滤无效数据,减少分组计算量,开发中优先用WHERE过滤基础条件。2.简述Oracle事务的隔离级别,默认隔离级别是什么?答案:Oracle支持三种事务隔离级别:读已提交、可重复读、串行化。(1)读已提交(默认):事务只能读取其他事务已提交的数据,可避免脏读,会出现不可重复读、幻读,是Oracle默认隔离级别。(2)可重复读:保证同一事务内多次读取同一数据结果一致,避免脏读、不可重复读,存在幻读。(3)串行化:最高隔离级别,事务串行执行,杜绝所有并发问题,但并发性能极差,极少使用。3.什么是Oracle死锁?死锁产生的条件及解决方式?答案:死锁是两个或多个事务互相持有对方需要的锁,同时等待对方释放锁,导致事务无限阻塞的现象。四大产生条件:互斥条件、请求与保持条件、不可剥夺条件、循环等待条件。解决方式:Oracle会自动检测死锁,几秒内主动终止其中一个事务并抛出异常;开发层面可通过统一SQL执行顺序、缩短事务执行时间、减少锁持有时间规避死锁。4.简述B树索引失效的常见场景?答案:(1)索引字段使用函数、运算,如SUBSTR(name,1,2)、age+10;(2)模糊查询以%开头,如LIKE'%测试';(3)字段类型隐式转换,字符串字段匹配数值、数值字段匹配字符串;(4)使用OR连接非索引字段;(5)表数据量极小、全表扫描效率高于索引查询;(6)索引字段存在大量NULL值、数据倾斜严重。四、SQL实操题(共2题,每题11分,共22分)基础数据表:学生表student(stu_id学号,stu_name姓名,age年龄,class_id班级编号,create_time创建时间)班级表class(class_id班级编号,class_name班级名称,teacher班主任)1.编写SQL,查询每个班级的学生人数,展示班级名称、学生人数,按人数降序排序。参考答案:sql

SELECT

c.class_name,

COUNT(s.stu_id)ASstudent_num

FROMclassc

LEFTJOINstudentsONc.class_id=s.class_id

GROUPBYc.class_name

ORDERBYstudent_numDESC;关键解析:使用左连接保证无学生的班级也能查询出人数为0;按班级名称分组,统计学生主键ID避免NULL值统计误差。2.编写SQL,实现查询学生表第6-10条数据(经典分页),按学号升序排序。参考答案:sql

SELECTstu_id,stu_name,age,class_id,create_time

FROM(

SELECT

stu_id,stu_name,age,class_id,create_time,

ROWNUMrn

FROMstudent

ORDERBYstu_idASC

)t

WHEREt.rnBETWEEN6AND10;关键解析:嵌套查询先排序再分配行号,规避ROWNUM先分配行号再排序的bug,是Oracle传统分页标准写法,适配所有版本。五、附加高频考点(面试补充)1.Oracle行锁与表锁区别:行锁锁定单行数据,并发度高,DML语句默认触发行锁;表锁

温馨提示

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

评论

0/150

提交评论