搜档网
当前位置:搜档网 › oracle面试题集锦

oracle面试题集锦

oracle面试题集锦
oracle面试题集锦

本文是Oracle技术人员求职面试题集锦,答案仅供参考……

1. 解释冷备份和热备份的不同点以及各自的优点

解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)

2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?

解答:重建控制文件,用带backup control file 子句的recover 命令恢复

数据库。

3. 如何转换init.ora到spfile?

解答:使用create spfile from pfile 命令.

4. 解释data block , extent 和segment的区别(这里建议用英文术语)

解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象

拥有的所有extents被称为该对象的segment.

5. 给出两个检查表结构的方法

解答:1。DESCRIBE命令

2. DBMS_METADATA.GET_DDL 包

6. 怎样查看数据库引擎的报错

解答:alert log.

7. 比较truncate和delete 命令

解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.

8. 使用索引的理由

解答:快速访问表中的data block

9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据

解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的信息

10. FACT Table上需要建立何种索引?

解答:位图索引(bitmap index)

11. 给出两种相关约束?

解答:主键和外键

12. 如何在不影响子表的前提下,重建一个母表

解答:子表的外键强制实效,重建母表,激活外键

13. 解释归档和非归档模式之间的不同和它们各自的优缺点

解答:归档模式是指你可以备份所有的数据库transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高

.

14. 如何建立一个备份控制文件?

解答:Alter database backup control file to trace.

15. 给出数据库正常启动所经历的几种状态?

解答:

STARTUP NOMOUNT –数据库实例启动

STARTUP MOUNT - 数据库装载

STARTUP OPEN –数据库打开

16. 哪个column可以用来区别V$视图和GV$视图?

解答:INST_ID 指明集群环境中具体的某个instance 。

17. 如何生成explain plan?

解答:运行utlxplan.sql. 建立plan 表

针对特定SQL语句,使用explain plan set statement_id = 'tst1' into plan_table

运行utlxplp.sql 或utlxpls.sql察看explain plan

18. 如何增加buffer cache的命中率?

解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_advice . 如果有必要更改,可以使用alter system set db_cache_size 命令

19. ORA-01555的应对方法?

解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过

增大rollback seg来解决问题。当然也需要察看一下具体造成错误的SQL文本

20. 解释$ORACLE_HOME和$ORACLE_BASE的区别?

解答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品

的目录。

21. 如何判断数据库的时区?

解答:SELECT DBTIMEZONE FROM DUAL;

22. 解释GLOBAL_NAMES设为TRUE的用途

解答:GLOBAL_NAMES指明联接数据库的方式。如果这个参数设置为TRUE,在建立数据库链接时就必须用相同的名字连结远程数据库

23。如何加密PL/SQL程序?

解答:WRAP

24. 解释FUNCTION,PROCEDURE和PACKAGE区别

解答:function 和procedure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值而function将返回一个值在另一

方面,Package是为了完成一个商业功能的一组function和proceudre的集合

25. 解释TABLE Function的用途

解答:TABLE Function是通过PL/SQL逻辑返回一组纪录,用于普通的表/视图。他们也用于pipeline和ETL过程。

26. 举出3种可以收集three advisory statistics

解答:Buffer Cache Advice, Segment Level Statistics, Timed Statistics

27. Audit trace 存放在哪个oracle目录结构中?

解答:unix $ORACLE_HOME/rdbms/audit Windows the event viewer

28. 解释materialized views的作用

解答:Materialized views 用于减少那些汇总,集合和分组的信息的集合数量。它们通常适合于数据仓库和DSS系统。

29. 当用户进程出错,哪个后台进程负责清理它

解答:PMON

30. 哪个后台进程刷新materialized views?

解答:The Job Queue Processes.

31. 如何判断哪个session正在连结以及它们等待的资源?

解答:V$SESSION / V$SESSION_WAIT

32. 描述什么是redo logs

解答:Redo Logs 是用于存放数据库数据改动状况的物理和逻辑结构。可以用来修复数据库.

33. 如何进行强制LOG SWITCH?

解答:ALTER SYSTEM SWITCH LOGFILE;

34. 举出两个判断DDL改动的方法?

解答:你可以使用Logminer 或Streams

35. Coalescing做了什么?

解答:Coalescing针对于字典管理的tablespace进行碎片整理,将临近的小extents合并成单个的大extent.

36. TEMPORARY tablespace和PERMANENT tablespace 的区别是?

解答:A temporary tablespace 用于临时对象例如排序结构而permanent tablespaces用来存储那些'真实'的对象(例如表,回滚段等)

37. 创建数据库时自动建立的tablespace名称?

解答:SYSTEM tablespace.

38. 创建用户时,需要赋予新用户什么权限才能使它联上数据库。

解答:CONNECT

39. 如何在tablespace里增加数据文件?

解答:ALTER TABLESPACE ADD DATAFILE SIZE

40. 如何变动数据文件的大小?

解答:ALTER DATABASE DATAFILE RESIZE ;

41. 哪个VIEW用来检查数据文件的大小?

解答:DBA_DATA_FILES

42. 哪个VIEW用来判断tablespace的剩余空间

解答:DBA_FREE_SPACE

43. 如何判断谁往表里增加了一条纪录?

解答:auditing

44. 如何重构索引?

解答:ALTER INDEX REBUILD;

45. 解释什么是Partitioning(分区)以及它的优点。

解答:Partition将大表和索引分割成更小,易于管理的分区。

46. 你刚刚编译了一个PL/SQL Package但是有错误报道,如何显示出错信息?

解答:SHOW ERRORS

47. 如何搜集表的各种状态数据?

解答:ANALYZE

The ANALYZE command.

48. 如何启动SESSION级别的TRACE

解答: DBMS_SESSION.SET_SQL_TRACE

ALTER SESSION SET SQL_TRACE = TRUE;

49. IMPORT和SQL*LOADER 这2个工具的不同点

解答:这两个ORACLE工具都是用来将数据导入数据库的。

区别是:IMPORT工具只能处理由另一个ORACLE工具EXPORT生成

的数据。而SQL*LOADER可以导入不同的ASCII格式的数据源

50。用于网络连接的2个文件?

解答:TNSNAMES.ORA and SQLNET.ORA 参考答案仅供参考!

华为面试题(附答案)Oracle

一、技术问题部分(数据库部分) 1、表空间的管理方式有哪几种? 数据字典管理方式 本地文件管理方式 2、谈谈你对索引的理解? 索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到要访问的记录所在的数据块,从而大大减少读取数据块的I/O次数,因此可以显著提高性能。 3、说说索引的组成? 索引列、rowid 4、分区表用过么?谈谈分区表的应用? 分区表在对表的DML的并行处理上有极大得优势,而且可以一部分设为只读,用在销售记录,医院处方等地方!! 5、你对分区表的理解?怎样截断分区表一个分区的记录? 一个分区表有一个或多个分区,每个分区通过使用范围分区、散列分区、或组合分区分区的行 分区表中的每一个分区为一个段,可各自位于不同的表空间中 对于同时能够使用几个进程进行查询或操作的大型表分区非常有用 alter table table_name truncate partition partition_name; 6、物理文件有哪几种?控制文件包含了什么信息? 1)数据文件2)控制文件3)日志文件 包含维护和验证有选举权据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个有选举权据库至少需要一个控制文件 7、表空间用完了如何增加? 三种种扩展方式: 1 增加数据文件alter tablespace name add datafile …路径? size 4M; 2 扩展数据文件大小alter database datafile …路径? resize 4M; 3 把数据文件设为自动增长 alter database datafile …路径? autoextend on next 1M maxsize 20M; 8、SGA包含几部分? Shared pool(共享池),DataBase Buffer Cache(数据缓冲区) Redo Log Buffer(重做日志缓冲区), Large Pool,大池,JAVA池。 9、DECODE函数的用法? DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。还可以转化表结构! 10、DELETE和TRUNCATE的区别? 答:1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有

几个Oracle的笔试题

Oracle笔试试题 1. SQL必备 <选择题每空 1 分共 14题> 1. 如果在where子句中有两个条件要同时满足,应该用以下哪个逻辑符来连接 ( ) A.OR B.NOT C.AND D.NONE 2. 外连接的条件可以放在以下的那一个子句中( ) A.FROM B.WEHRE C.SELECT D.HAVING E.GROUP BY F.ORDER BY 3. 在从两个表中查询数据时,连接条件要放在哪个子句中( ) A.FROM B.WHERE C.SELECT D.HAVING E.GROUP BY 4. 用以下哪个子句来限制分组统计结果信息的显示( ) A.FROM B.WEHRE C.SELECT D.HAVING E.GROUP BY F.ORDER BY 5. 以下需求中哪个需要用分组函数来实现( ) A.把ORDER表中的定单时间显示成 'DD MON YYYY' 格式 B.把字符串 'JANUARY 28, 2000' 转换成日期格式 C.显示PRODUCT 表中的COST 列值总量 D.把PRODUCT表中的DESCRIPTION列用小写形式显示 6. 以下那些命令可以暗含提交操作( )

A.GRANT B.UPDATE C.SELECT D.ROLLBACK 7.RDBMS是下列哪一项的缩写( ) A. Relational DataBase Management System(关系数据库管理系统) B. Relational DataBase Migration System(关系数据库移植系统) C. Relational Data Migration System(关系数据移植系统) D. Relational DataBase Manage System(关系数据库管理系统) 8.INSERT 是( ) A. DML语句 B. DDL语句 C. DCL语句 D. DTL语句 9.SELECT CHR(66) FROM DUAL的结果是( ) A. Z B. S C. B D. 都不是 10.函数返回一个值除以另一个值后的余数( ) A. MOD B. ABS C. CEIL D. 以上都不是 11. 什么锁用于锁定表,仅允许其他用户查询表中的行,行不允许插入,更新, 或删除行( ) A. 共享 B. 排他 C. 共享更新 D. 以上都不是 12.什么是oracle提供的一个对象,可以生成唯一的连续的整数( ) A. 同义词 B. 序列 C. 视图 D. 没有 13. 那种类型的约束可以自动创建索引( ) A.CHECK B.UNIQUE

Oracle_DBA面试题

一. SQL tuning 类 1:列举几种表连接方式 hash join/merge join/nest loop(cluster join)/index join 2:不借助第三方工具,怎样查看sql的执行计划 set autot on explain plan set statement_id = &item_id for &sql; select * from table(dbms_xplan.display); 或者: SQL>EXPLAIN PLAN FOR SELECT * FROM EMP; SQL>SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE')); 3:如何使用CBO,CBO与RULE的区别 Rule Based Optimizer(RBO):基于规则 Cost Based Optimizer (CBO):基于成本,或者讲统计信息。 在optimizer_mode=choose时,如果表有统计信息(分区表外),优化器将选择CBO,否则选RBO。RBO遵循简单的分级方法学,使用15种级别要点,当接收到查询,优化器将评估使用到的要点数目, 然后选择最佳级别(最少的数量)的执行路径来运行查询。 CBO尝试找到最低成本的访问数据的方法,为了最大的吞吐量或最快的初始响应时间,计算使用不同的执行计划的成本,并选择成本最低的一个,关于表的数据内容的统计被用于确定执行计划。 4:如何定位重要(消耗资源多)的SQL select sql_text from v$sql where disk_reads > 1000 or (executions > 0 and buffer_gets/executions > 30000); 5:如何跟踪某个session的SQL exec dbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace); select sid,serial# from v$session where sid = (select sid from v$mystat where rownum = 1); exec dbms_system.set_ev(&sid,&serial#,&event_10046,&level_12,'');

数据库面试题数据库的面试题及答案

数据库面试题:数据库的面试题及答案 疯狂代码 https://www.sodocs.net/doc/482590002.html,/ ?:http:/https://www.sodocs.net/doc/482590002.html,/DataBase/Article25003.html . 数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义? 答:触发dbwr的执行,dbwr会把和这个日志相关的所有脏队列写到数据文件里,缩短实例恢复所需要的时间。 2. 表空间管理方式有哪几种,各有什么优劣。 答:字典管理方式和本地管理方式,本地管理方式采用位图管理extent,减少字典之间的竞争,同时避免了碎片。 本地管理表空间与字典管理表空间相比,其优点如下: 1).减少了递归空间管理; 2).系统自动管理extents大小或采用统一extents大小; 3).减少了数据字典之间的竞争; 4).不产生回退信息; 5).不需合并相邻的剩余空间; 6).减少了空间碎片; 7).对临时表空间提供了更好的管理。 3. 本地索引与全局索引的差别与适用情况。 答:对于local索引,每一个表分区对应一个索引分区,当表的分区发生变化时,索引的维护由Oracle自动进行。对于global索引,可以选择是否分区,而且索引的分区可以不与表分区相对应。当对分区进行维护操作时 ,通常会导致全局索引的INVALDED,必须在执行完操作后REBUILD。Oracle9i提供了UPDATE GLOBAL INDEXES语句,可以使在进行分区维护的同时重建全局索引。 4. 一个表a varchar2(1),b number(1),c char(2),有100000条记录,创建B-Tree索引在字段a上,那么表与索引谁大?为什么? 答:这个要考虑到rowid所占的字节数,假设char总是占用2字节的情况,比较rowid,另外,table和index在segment free block的管理也有差别。 5. Oracle9i的data guard有几种模式,各有什么差别。 答:三种模式: 最大性能(maximize performance):这是data guard默认的保护模式。primay上的事务commit前不需要从standby上收到反馈信息。该模式在primary故障时可能丢失数据,但standby对primary的性能影响最小。 最大可用(maximize availability):在正常情况下,最大可用模式和最大保护模式一样;在standby不可用时 ,最大可用模式自动最大性能模式,所以standby故障不会导致primay不可用。只要至少有一个standby可用的情况下,即使primarydown机,也能保证不丢失数据。 最大保护(maximize protection):最高级别的保护模式。primay上的事务在commit前必须确认redo已经传递到至少一个standby上,如果所有standby不可用,则primary会挂起。该模式能保证零数据丢失。 6. 执行计划是什么,查看执行计划一般有哪几种方式。 答:执行计划是数据库内部的执行步骤: set autotrace on select * from table

Oracle精选面试题(附答案及分析)

Oracle精选面试题 1.显示10 号部门的所有经理('MANAGER')和20 号部门的所有职员('CLERK')的详细信息 答案: Select * from emp where deptno=10 and job=’MANAGER’ or deptno=20 and job=’clerk’; select * from emp where deptno = 10 and job = 'MANAGER' or deptno = 20 and job ='CLERK'; 2.显示姓名中没有'L'字的员工的详细信息或含有'SM'字的员工信息 答案: Select * from emp where ename note like ‘%L%’ or ename like ‘%SM%’; select * from emp where ename not like '%L%' or ename like '%SM%'; 3.显示各个部门经理('MANAGER')的工资 答案: select deptno,emname, salary from emp_wqq where job='MANAGER'; 4.显示佣金(COMM)收入比工资(SAL)高的员工的详细信息 答案: select * from emp where comm > sal; 5.把hiredate 列看做是员工的生日,求本月过生日的员工 答案: select * from emp where to_char(hiredate, 'mm') = to_char(sysdate , 'mm'); 6.把hiredate 列看做是员工的生日,求下月过生日的员工 答案: select * from emp where to_char(hiredate, 'mm') = to_char(add_months(sysdate,1) , 'mm'); 7.求1982 年入职的员工 答案: select * from emp where to_char(hiredate,'yyyy') = '1982'; 8.求1981 年下半年入职的员工 答案: select * from emp where hiredate between to_date('1981-7-1','yyyy-mm-dd') and to_date('1982-1-1','yyyy-mm-dd') - 1; 9.求1981 年各个月入职的的员工个数 答案: select count(*), to_char(trunc(hiredate,'month'),'yyyy-mm')

ORACLE数据库工程师面试题目

1. 解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令. 4. 解释data block , extent 和segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1.DESCRIBE命令 2.DBMS_METADATA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间. 8. 使用索引的理由 解答:快速访问表中的data block 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension t ables 存放对fact table 某些属性描述的信息

数据仓库面试题

数据仓库及BI工程师面试题集锦 前言 1、介绍一下项目经验、项目中的角色。 一、数据库 1、Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作 用? i.视图与表的区别 1. 1、视图是已经编译好的sql语句。而表不是 2. 视图没有实际的物理记录。而表有。 3. 表是内容,视图是窗口 4. 表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在, 表可以及时四对它进行修改,但视图只能有创建的语句来修改ii. 物化视图与视图区别 1.物化视图和视图差别非常大,不是几句能说清物化视图是自动刷新或者 手动刷新的,视图不用刷新物化视图也可以直接update,但是不影响b ase table,对视图的update反映到base table上物化视图主要用于 远程数据访问,物化视图中的数据需要占用磁盘空间,视图中不保存数据。 2、Oracle数据库,有哪几类索引,分别有什么特点? a) 1.单列索引与复合索引 一个索引可以由一个或多个列组成,用来创建索引的列被称为“索引列”。 单列索引是基于单列所创建的索引,复合索引是基于两列或者多列所创建的索引。 2.唯一索引与非唯一索引 唯一索引是索引列值不能重复的索引,非唯一索引是索引列可以重复的索引。

无论是唯一索引还是非唯一索引,索引列都允许取NULL值。默认情况下,Oracle 创建的索引是不唯一索引。 3.B树索引 B树索引是按B树算法组织并存放索引数据的,所以B树索引主要依赖其组织并存放索引数据的算法来实现快速检索功能。 4.位图索引 位图索引在多列查询时,可以对两个列上的位图进行AND和OR操作,达到更好的查询效果。 5.函数索引 Oracle中不仅能够直接对表中的列创建索引,还可以对包含列的函数或表达式创建索引,这种索引称为“位图索引”。 3、Union与Union All的区别? a)Union会对查询结果进行排序去重,效率比union all 低,union all只是两个查 询集的合并操作。建议使用Union all,查询出来后再对数据进行去重操作。 4、对游标的理解?游标的分类?使用方法? 游标是映射在结果集中一行数据的位置实体,有了游标,用户就可以访问结果集中的任何一条数据。游标分为静态游标和REF游标,静态游标分为显示游标和隐式游标,显示游标使用步骤是声明游标,打开游标,获取记录,关闭游标。所有的DML语句为隐式游标,可以从游标的属性获得sql语句的信息。REF游标是动态关联结果集的临时对象,使用步骤也是先要进行声明游标,然后打开游标,获取记录,关闭游标。 5、如何查找和删除表中的重复数据?给出方法或SQL。 查询表中重复数据。 Select * from people where id in (Select id from people group by id having count(id)>1); Delete from people where id in(select id from people group by id having count(id)>1) and rowid not in (select min(rowid) from people group by id hacing count(id)>1);

oracle常见面试题及答案

需求: 写一个邮件系统, 采用oracle+jsp+servlet来完成. 1.创建一个表空间。 2.创建一个用户,将用户赋到表空间上. 3.给用户赋权限. 4.以新建用户登录,创建一个程序包. 5.在表空间上建表,两个表 用户表 Id int Uname varchar Upass varchar 邮件表 eId int Title varchar Contents varchar Uid int 外键 附件表 Id int Filepath varchar Eid int 外键 6.作增,删,改,查的操作,全部封装到存储过程中 7.写一个java程序来调用. 1.解释FUNCTION,PROCEDURE和PACKAGE区别 答:function 和procedure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值, 而function将返回一个值. 在另一方面,Package是为了完成一个商业功能的一组function和procedure的集合。

2.取某个序列的当前值的PL/SQL语句怎么写? 答:SELECT 序列名.CURRVAL FROM DUAL; Create sequence 名字 start with x increment by y maxvalue z nocycle 3.说明ORACLE数据库实例与ORACLE用户的关系? 答:实例可以包含多个用户,一个用户只能在一个实例下 4.创建用户时,需要赋予新用户什么权限才能使它连上数据库? 答:grant CONNECT [on 表名] to 用户名 5.比较truncate和delete命令? 答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL(data defining language数据定义语言),它移动HWK,不需要rollback segment(处理事务回滚操作)而Delete是DML(data manufacturing language数据操作语言)操作,需要rollback segment(处理事务回滚操作)且花费较长时间 6.给出数据的相关约束类型? 答:主键约束,外键约束,非空约束,唯一约束,检查约束。 7.说明索引的类型与作用? 答:索引类型上分为聚集索引,非聚集索引. 其作用是加快查询速度。 8.获取某个字符字段的最后3个字符的函数是什么? 答:select substr (字段,(length(字段)-3)) from 表 9.取当前系统时间点日期(不包括年月)的SQL写法是怎样的? 答:Select substr (to_char(sysdate,’YYYYMMDDh24hh:MM:SS’),5) from dual; to_char(sysdate,’YYYYMMDDh24hh:MM:SS’) 10.返回大于等于N的最小整数值? 答:select ceil(1.5) from dual; floor(1.5) 11.将根据字符查询转换后结果,规则为:’A’转换为’男’,’B’转换为’女’,其他字符转换为’未知’,请用一个SQL语句写出。 答:select decode(字符,’A’,’男’,’B’,’女’,’未知’) from dual; 12.如何搜索出前N条记录? 答:select * from 表 where Rownum <= N;

oracle数据库面试题目汇总

1. 对字符串操作的函数? 答:ASCII()--函数返回字符表达式最左端字符的ASCII 码值 CHR()--函数用于将ASCII 码转换为字符 --如果没有输入0 ~ 255 之间的ASCII 码值CHR 函数会返回一个NULL 值 --应该是必须给chr()赋数字值 concat(str,str)连接两个字符串 LOWER()--函数把字符串全部转换为小写 UPPER()--函数把字符串全部转换为大写 LTRIM()--函数把字符串头部的空格去掉 RTRIM()--函数把字符串尾部的空格去掉 TRIM() --同时去掉所有两端的空格 实际上LTRIM(),RTRIM(),TRIM()是将指定的字符从字符串中裁减掉 其中LTRIM(),RTRIM()的格式为xxxx(被截字符串,要截掉的字符串), 但是TRIM()的格式为TRIM(要截掉的一个字符from 被截的字符串) SUBSTR()--函数返回部分字符串 INSTR(String,substring) --函数返回字符串中某个指定的子串出现的开 始位置,如果不存在则返回0 REPLACE(原来的字符串,要被替换掉的字符串,要替换成的字符串) SOUNDEX()--函数返回一个四位字符码 --SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数

对数字和汉字均只返回NULL 值 2、事务概念 答案:事务是这样一种机制,它确保多个SQL语句被当作单个工作单元来处理。事务具有以下的作用: * 一致性:同时进行的查询和更新彼此不会发生冲突,其他用户不会看到发生了变化但尚未提交的数据。 * 可恢复性:一旦系统故障,数据库会自动地完全恢复未完成的事务。 3、oracle中查询系统时间 答:select sysdate from dual 4、触发器的作用,什么时候用触发器,创建触发器的步骤,触发器里是否可以有 commit, 为什么? 答案:触发器是可以由事件来启动运行的,存在于数据库服务器中的一 个过程。 他的作用:可以实现一般的约束无法完成的复杂约束,从而实现更为复 杂的完整性要求。 使用触发器并不存在严格的限定,只要用户想在无人工参与的情况下完 成一般的定义约束不可以完成的约束,来保证数据库完整性,那么就可 以使用触发器。 由于触发器主要是用来保证数据库的完整性的,所以要创建一个触发器,首先要明确该触发器应该属于那一种(DML,INSTEAD OF,SYSTEM)

Oracle面试题库1

1 PL/SQL代表 A PROCEDURAL LANGUAGE/SQL B PROGRAM LANGUAGE SQL C POWER LANGUAGE SQL D 都不对 2 _____引擎执行PL/SQL块 A SQL B PL/SQL C ORACLE D 都不对 3 一个对象可以呈现多种形式的能力称为 A 多态 B 继承 C 封装 D 以上都不对 4 PLSQL块是由哪几个部分组成 A DECLARE BEGIN END B BEGIN END C EXCEPTION BEGIN END D DECLAR E BEGIN EXCEPTION END 5 看下面代码,正确的是 A DECLARE (‘定义部分’); BEGIN (‘语句部分’); END; B BEGIN NUM NUMBER:=100; (‘NUM 的值为:’||NUM); END; C DECLARE NUM NUMBER:=100; BEGIN NUM:=NUM+NUM/2; (‘NUM 的值为:’||NUM); END; D BEGIN NUM NUMBER:=100; DECLARE NUM:=NUM+NUM/2; (‘NUM 的值为:’||NUM); END;

6 看下面语句正确的是 A IF(N%M=0) THEN (‘这是一个偶数’); ELSEIF(N%M=1) THEN (‘这是一个奇数’); END IF; B DECLARE VAR NUMBER:=0; BEGIN VAR:=&V; CASE WHEN VAR=1 THEN (‘A’); WHEN VAR=2 THEN (‘B’); ELSE (‘O’); END CASE; END; C DECLARE I NUMBER:=0; BEGIN FOR I IN 10..20 LOOP (I); END LOOP; END; D LOOP (I); END LOOP; 7. 当在一个PLSQL块中通过查询得到一个值,但是没有任何值返回时,会产生异常吗如果产生,是什么异常? A 不会有异常,只不过没有结果而已 B 有异常,异常为No_data_found C 有异常,异常为Value_erro D 编译都不通过 8. 在PLSQL块中处理异常的语句是 A EXCEPTION IF EXCEPTION_NAME THEN (); END; B EXCEPTION WHEN EXCEPTION_NAME THEN

Oracle数据库面试题目

Oracle常见面试题 1、对数据库SQL2005、ORACLE熟悉吗? SQL2005是微软公司的数据库产品。是一个RDBMS数据库,一般应用在一些中型数据库的应用,不能跨平台。 ORACLE是ORACLE公司的数据产品,支持海量数据存储,支持分布式布暑,支持多用户,跨平台,数据安全完整性控制性能优越,是一个ORDBMS,一般用在大型公司。 2、能不能设计数据库?如何实现数据库导入与导出的更新 使用POWERDISINE工具的使用,一般满足第三范式就可以了。EXP与IMP数据库的逻辑导入与导出 3、如何只显示重复数据,或不显示重复数据 显示重复:select * from tablename group by id having count(*)>1 不显示重复:select * from tablename group by id having count(*)=1 4、什么是数据库的映射 就是将数据库的表与字段对应到模型层类名与属性的过程. 5、写分页有哪些方法,你一般用什么方法?用SQL语句写一个分页? 如何用存储过程写分页? 在SQLSERVER中使用TOP分页,在ORACLE中用ROWNUM,或分析函数 ROW_NUMBER 使用TOP: select top 20,n.* from tablename n minus select top 10,m.* from tablename m 使用分析函数: select * from (select n.*,row_number() over(order by columnname) num from tablename n) where num>=10 and num <=20; 使用过程时,只要将分页的范围用两个参数就可以实现。在ORACLE中,要将过程封装在包里,还要用动态游标变量才能实现数据集的返回。 6、ORACLE中左连接与右连接 左连接:LEFT JOIN 右连接:RIGHT JOIN select n.column,m.column from tablename1 n left join tablename2 m on n.columnname=m.columnname 用WHERE实现: select n.column,m.column from tablename1 n,tablename2 m where n.columnname(+)=m.columnname

oracle面试题集锦

本文是Oracle技术人员求职面试题集锦,答案仅供参考…… 1. 解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复 数据库。 3. 如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令. 4. 解释data block , extent 和segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象 拥有的所有extents被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1。DESCRIBE命令 2. DBMS_METADATA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间. 8. 使用索引的理由 解答:快速访问表中的data block 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的信息 10. FACT Table上需要建立何种索引? 解答:位图索引(bitmap index) 11. 给出两种相关约束? 解答:主键和外键 12. 如何在不影响子表的前提下,重建一个母表 解答:子表的外键强制实效,重建母表,激活外键 13. 解释归档和非归档模式之间的不同和它们各自的优缺点 解答:归档模式是指你可以备份所有的数据库transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高 . 14. 如何建立一个备份控制文件? 解答:Alter database backup control file to trace. 15. 给出数据库正常启动所经历的几种状态? 解答:

极详细oracle数据库面试题目汇总

1.对字符串操作的函数? 答:ASCII() --函数返回字符表达式最左端字符的ASCII 码值 CHR() --函数用于将ASCII 码转换为字符 --如果没有输入0 ~ 255 之间的ASCII 码值CHR 函数会返回一个NULL 值 --应该是必须给chr()赋数字值 concat(str,str)连接两个字符串 LOWER() --函数把字符串全部转换为小写 UPPER() --函数把字符串全部转换为大写 LTRIM() --函数把字符串头部的空格去掉 RTRIM() --函数把字符串尾部的空格去掉 TRIM() --同时去掉所有两端的空格 实际上LTRIM(),RTRIM(),TRIM()是将指定的字符从字符串中裁减掉 其中LTRIM(),RTRIM()的格式为xxxx(被截字符串,要截掉的字符串),但是TRIM()的格式 为TRIM(要截掉的一个字符from 被截的字符串) SUBSTR() --函数返回部分字符串 INSTR(String,substring) --函数返回字符串中某个指定的子串出现的开始位置,如果不存在 则返回0 REPLACE(原来的字符串,要被替换掉的字符串,要替换成的字符串) SOUNDEX() --函数返回一个四位字符码 --SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回NULL 值 2、事务概念 答案:事务是这样一种机制,它确保多个SQL语句被当作单个工作单元来处理。 事务具有以下的作用: * 一致性:同时进行的查询和更新彼此不会发生冲突,其他用户不会看到发生了变化但尚未提交的数据。 * 可恢复性:一旦系统故障,数据库会自动地完全恢复未完成的事务。 3、oracle中查询系统时间 答:select sysdate from dual 4、触发器的作用,什么时候用触发器,创建触发器的步骤,触发器里是否可以有commit, 为 什么? 答案:触发器是可以由事件来启动运行的,存在于数据库服务器中的一个过程。 他的作用:可以实现一般的约束无法完成的复杂约束,从而实现更为复杂的完整性 要求。 使用触发器并不存在严格的限定,只要用户想在无人工参与的情况下完成一般的定 义约束不可以完成的约束,来保证数据库完整性,那么就可以使用触发器。 由于触发器主要是用来保证数据库的完整性的,所以要创建一个触发器,首先要明 确该触发器应该属于那一种(DML,INSTEAD OF,SYSTEM)因为他们各有个的 用途;其次就是要确定触发器被触发以后所设计到的数据。 出发器中不可以使用COMMIT。 5.数字函数 abs()绝对值exp(value)e的value次幂ceil()大于等于该值的最小整数floor()小于

Oracle面试题及答案整理

Oracle面试题及答案整理

Oracle面试题及答案整理 1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。 select fclass,max(fscore) from table1 group by fclass,fid 2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。 类如: 101a1001 101a1001 102a1002 102a1003 103a1004 104a1005 104a1006 105a1007 105a1007 105a1007 结果: 102a1002

102a1003 104a1005 104a1006 select t2.* from table1 t1, table1 t2 where t1.fid = t2.fid and t1.fno <> t2.fno; 3、有员工表empinfo ( Fempno varchar2(10) not null pk, Fempname varchar2(20) not null, Fage number not null, Fsalary number not null ); 假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人: fsalary>9999 and fage > 35 fsalary>9999 and fage < 35 fsalary <9999 and fage > 35 fsalary <9999 and fage < 35 每种员工的数量; select sum(case when fsalary > 9999 and fage > 35 then 1 else 0end) as "fsalary>9999_fage>35",

Oracle数据库DBA面试题

数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复 操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换到spfile 解答:使用create spfile from pfile 命令 . 4. 解释data block , extent 和segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一 个数据库对象拥有的所有extents被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1、DESCRIBE命令 2、包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment .而Delete是DML操作 , 需要rollback segment 且花费较长时间. 8. 使用索引的理由 解答:快速访问表中的data block 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的

Oracle数据库DBA面试题及答案_经典

1.OracleDBA面试题之一解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。 冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令 4. OracleDBA面试题:解释data block , extent 和 segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents 被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1、DESCRIBE命令 2、DBMS_METADATA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作需要rollback segment 且花费较长时间. 8. 使用索引的理由 解答:快速访问表中的data block 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的信息

oracle基础面试题

oracle基础面试题 1.现实世界中客观工可相互区别的“事物”被称为(B )。 A) 属性 B) 实体 C)数据 D)域 2.实体相互之间关系的抽象表示被称为(D ),即现实世界中事物之间的语义关系。 A) 项 B) 键 C)表 D)联系 3.关系代数是用对( D)的运算来表达查询需求的方法。 A)实体 B) 域 C) 属性 D) 关系 4.SQL语言具有( A)的功能。 A) 关系规范化、数据操作、数据控制 B) 数据定义、数据操作、数据控制 C) 数据定义、关系规范化、数据控制 D) 数据定义、关系规范化、数据操作 5.SQL语言数据操作语句包括SELECT、INSERT、UPDATE和DELETE。其中最重要的,也是使用最频繁的语句是(A )。 A) SELECT B) INSERT C) UPDATE D) DELETE 6.检索学生姓名及其所选修课程的课程号和成绩。正确的语句是( C)。 A) SELECT S.SNAME,SC.C#,SC.GRADE FORM S WHERE S.S#=SC.S# B) SELECT S.SNAME,SC.C#,SC.GRADE FORM SC WHERE S.S#=SC.GRADE C) SELECT S.SNAME,SC.C#,SC.GRADE FORM S,SC

WHERE S.S#=SC.S# D) SELECT S.SNAME,SC.C#,SC.GRADE FORM S.SC 7.规范化理论是( D)首先提出来的 A) Microsoft B) 冯·诺依曼C) IBM D) E·F·Codd 8.(D )是提供信息,辅助人们对环境进行控制与决策的系统。 A) 软件系统 B) 关系系统 C) 程序系统 D) 信息系统 9.( D)是评价数据库系统的一个重要指标,它标志程序和数据等信息的安全问题。 A) 统一性 B) 可靠性 C) 可维护性 D) 安全性 10.按照数据模型划分,VFP6.0是关系型数据库管理系统( C)。 A) 层次型数据库管理系统 B) 网状型数据库管理系统 C) 关系型数据库管理系统 D) 混合型数据库管理系统 11.在一个运算表达式中,有逻辑运算、关系运算和算术运算混合在一起,其中不含括号,它们的运算顺序是(C )。 A) 逻辑、关系、算术 B) 逻辑、算术、关系 C) 关系、逻辑、算术 D) 算术、关系、逻辑 12.表达式VAL(SUBS(“奔腾586”,5,1))*LEN(“Visual FoxPro”)的结果是 (C )。 A) 63.00 B) 64.00 C) 65.00 D)66.00 13.可以链接或嵌入OLE对象的字段类型是( C)。 A) 备注型 B) 通用型和备注型 C) 通用型 D)任何类型 14.在表结构中,逻辑型、日期型、备注型、通用型字段的宽度分别固定为( A)。 A) 1、8、4、4 B) 1、6、10、10 C) 1、8、10、10 D) 3、 8、10、10

相关主题