`

北京亿阳信通Oracle笔试题

阅读更多
PS:这份答案是我自己做的,仅供参考!

  一、选择题
  
  1.当你执行以下查询语句:
  
SELECT empno,ename
  
FROM emp
  
WHERE empno =7782 OR empno =7876;
  在WHERE语句中,以下哪个操作符可以取代OR

  
A. IN
  B. BETWEEN ……
  C. LIKE
  
D. <=
  
E. >=
  

  2. 哪个实现 IF..THENELSE 逻辑?
  
A. INITCAP()
  
B. REPLACE()
  
C. DECODE()
 
 D. IFELSE()
  
  3. 以下哪行有错?
  
1 SELECT deptno
  
2 FROM emp
  
3 GROUP BY deptno
  
4 HAVING COUNT(deptno)=
  
5 (SELECT max(count(deptno))
  
6 FROM emp
  
7 GROUP BY deptno);
  
A. Line 3
  
B. Line 4
  
C. Line 5
  
D. Line 7
  
E. 都没错.
  
  4. 当一个程序执行了 SELECT...FOR UPDATE 语句, 以下哪个步骤必须需要完成?
  A. 执行 COMMIT or ROLLBACK 结束 transaction, 即使并没有数据改变。

  B. 如果有数据改变,则需要执行commit or rollback 来结束 transaction
  
C. 由于只有数据确实改变后,一个transaction 才会开始,所以现在不需要COMMIT or ROLLBACK 被执行。
  
  
  
  5. 以下哪个命令可以被用来从表 STATE drop UPDATE_DT ?
 
 A. ALTER TABLE STATE DROP COLUMN UPDATE_DT;
  B. ALTER TABLE STATE REMOVE COLUMN UPDATE_DT;
  
C. DROP COLUMN UPDATE_DT FROM STATE;
  D. 你不能从这个表中DROP该列
.
  

  
  6. 哪个命令用来创建一个primary key constraint
  pk_books 在表 BOOKS, ISBN? 请选择一个。

  A. create primary key on books(ISBN);
  
B. create constraint pk_books primary key on books(ISBN);
  
C. alter table books add constraint pk_books primary key (ISBN);
  D. alter table books add primary key (ISBN);
  

  
  7. 以下哪行有错r?
  
1 X :=Y +200;
  
2 IF X <10 THEN
  
3 Y :=30;
  
4 ELSEIF X <40 THEN
  
5 Y :=20;
  
6 END IF;
  

  A. Line 2
  
B. Line 3
  
C. Line 4
  D. Line 5
  

  8. 一个VIEW被以下语句创建,请问在该VIEW上可进行哪个操作?
  
CREATE VIEW USA_STATES
  
AS SELECT *FROM STATE
  
WHERE CNT_CODE =1
  
WITH READ ONLY;
  

 
 A. SELECT
  B. SELECT , UPDATE
  
C. SELECT , DELETE
  
D. SELECT , INSERT
  二、问答

  
  1、 请简述ORACLEUNIX平台下安装的步骤;
  
  
  2 ORACLE的启动方式有哪几种?
  
1startup nomount
  非安装启动,这种方式启动下可执行:重建控制文件、重建数据库

  

  读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。

  2startup mount dbname
  安装启动,这种方式启动下可执行:

  数据库日志归档、

  数据库介质恢复、

  使数据文件联机或脱机,

  重新定位数据文件、重做日志文件。

  

  执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,
  但此时不对数据文件和日志文件进行校验检查。

  

  3startup open dbname
  先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,
  这种方式下可访问数据库中的数据。

  

  4startup,等于以下三个命令
  
startup nomount
  
alter database mount
  
alter database open
  

  5startup restrict
  约束方式启动
  这种方式能够启动数据库,但只答应具有一定特权的用户访问

  非特权用户访问时,会出现以下提示:

  ERROR

  ORA-01035: Oracle 只答应具有 RESTRICTED SESSION 权限的用户使用

  

  6startup force
  强制启动方式

  当不能关闭数据库时,可以用startup force来完成数据库的关闭

  先关闭数据库,再执行正常启动数据库命令

  

  7startup pfile=参数文件名
  带初始化参数文件的启动方式
  先读取参数文件,再按参数文件中的设置启动数据库

  例:
startup pfile=E:Oracleadminoradbpfileinit.ora
  

  8startup EXCLUSIVE


  
  3、 在ORACLE中控制文件起什么作用?
  
ORACLE数据库中,控制文件记录着数据库的物理结构和事务控制的值

(SCN,CHECKPOINT),以及一些可以被改写的信息(如备份的元数据).

在实例恢复和介质恢复过程中,都要用到控制文件。同时还需要归档日志

文件。

  
  4、 请简述SGA的构成;
  
SGA System Global Area)是Oracle Instance 基本组成部分,在实例启

动时分配。是一组包含一个Oracle实例的数据和控制信息的共享内存结构。主

要是用于存储数据库信息的内存区,该信息为数据库进程所共享(PGA不能共

享的)。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留

的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写

它主要包括:

  1.数据库高速缓存(the database buffer cache)

  2.重演日志缓存(the redo log buffer

  3.共享池(the shared pool

  4.数据字典缓存(the data dictionary cache)以及其它各方面的信息。


  
  5、 数据库表空间一般分为那几类?每一类的大概功能?
  

表空间具有以下类型:
  系统编目表空间
(SysCatSpace)
  系统临时表空间
(SysTempSpace)
  用户表空间
(UserSpace)
  用户临时表空间
(UserTempSpace)
  一个数据库中必须存在两个系统基本的表空间,分别是系统编目表空间与系统临时

表空间。在数据库中创建的任何对象都以在系统编目表空间中增加记录的方式体现,

对于临时表空间,其占用磁盘大小是根据使用情况动态伸缩的,即仅在需要时才分配

磁盘空间,并在使用后进行回收。此外,若用户需要创建表,则需要创建用户表空间,

若需要使用临时表,则需要创建用户临时表空间。
  
  6、 如何配置访问远程数据库的连接字符串?
 
 1   假设远程连接串为 ‘210.111.123.321: 1521: EMP’;

     2   测试是否可以连接成功     connect   scott/tiger@210.111.123.321: 1521: EMP 
     3  
连接到本地数据库,执行以下的命令
 
    create   database   link   remote_db   connect   to   scott   identified   by   tiger  

using   'REMOTE';  
   
     4   DML
测试
 
      select   count(*)   from   emp@remote_db  
  

  7、 访问远程数据库,在服务器端必须启动那一个进程用于网络监听?
  

lsnrctl
  
  8 ORACLE数据库有哪几种标准备分方式?

 

1.导出/导入(EXP/IMP)。

 

  2.热备份。

 

  3.冷备份。

 

  注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份。

 

  一、 导出/导入(ExportImport

 

  利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。

 

  1、简单导出数据(Export)和导入数据(Import

 

  Oracle支持三种方式类型的输出:

 

  (1)、表方式(T方式),将指定表的数据导出。

 

  (2)、用户方式(U方式),将指定用户的所有对象及数据导出。

 

  (3)、全库方式(Full方式),瘵数据库中的所有对象导出。

 

  数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。

 

  2、 增量导出/导入

 

  增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。

 

  增量导出包括三种类型:

 

  (1)、“完全”增量导出(Complete

 

  即备份三个数据库,比如:

 

  exp system/manager inctype=complete file=040731.dmp

 

  (2)、“增量型”增量导出

 

  备份上一次备份后改变的数据,比如:

 

  exp system/manager inctype=incremental file=040731.dmp

 

  (3)、“累积型”增量导出

 

  累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:

 

  exp system/manager inctype=cumulative file=040731.dmp

 

  数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。

 

  比如数据库的被封任务可以做如下安排:

 

  星期一:完全备份(A

 

  星期二:增量导出(B

 

  星期三:增量导出(C

 

  星期四:增量导出(D

 

  星期五:累计导出(E

 

  星期六:增量导出(F

 

  星期日:增量导出(G

 

  如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:

 

  第一步:用命令CREATE DATABASE重新生成数据库结构;

 

  第二步:创建一个足够大的附加回滚。

 

  第三步:完全增量导入A

 

  imp system/manager inctype=RESTORE FULL=y FILE=A

 

  第四步:累计增量导入E

 

  imp system/manager inctype=RESTORE FULL=Y FILE=E

 

  第五步:最近增量导入F

 

  imp system/manager inctype=RESTORE FULL=Y FILE=F

 

二、 冷备份

 

  冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:

 

  1、 是非常快速的备份方法(只需拷文件)

 

  2、 容易归档(简单拷贝即可)

 

  3、 容易恢复到某个时间点上(只需将文件再拷贝回去)

 

  4、 能与归档方法相结合,做数据库“最佳状态”的恢复。

 

  5、 低度维护,高度安全。

 

  但冷备份也有如下不足:

 

  1、 单独使用时,只能提供到“某一时间点上”的恢复。

 

  2、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

 

  3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。

 

  4、 不能按表或按用户恢复。

 

  如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:

 

  1、 所有数据文件

 

  2、 所有控制文件

 

  3、 所有联机REDO LOG文件

 

  4、 Init.ora文件(可选)

 

  值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。

 

  下面是作冷备份的完整例子。

 

  (1 关闭数据库

 

  sqlplus /nolog

 

  sql>connect /as sysdba

 

  sql>shutdown normal

 

  (2 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件

 

  sql>cp <file> <backup directory>

 

  (3 重启Oracle数据库

 

  sql>startup

 

  三、 热备份

 

  热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:

 

  1. 数据文件一个表空间一个表空间的备份。

 

  (1 设置表空间为备份状态

 

  (2 备份表空间的数据文件

 

  (3 回复表空间为正常状态

 

  2. 备份归档log文件

 

  (1 临时停止归档进程

 

  (2 log下那些在archive rede log目标目录中的文件

 

  (3 重新启动archive进程

 

  (4 备份归档的redo log文件

 

  3. alter database bachup controlfile命令来备份控制文件

 

  热备份的优点是:

 

  1. 可在表空间或数据库文件级备份,备份的时间短。

 

  2. 备份时数据库仍可使用。

 

  3. 可达到秒级恢复(恢复到某一时间点上)。

 

  4. 可对几乎所有数据库实体做恢复

 

  5. 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。

 

  热备份的不足之处:

 

  1. 不能出错,否则后果不堪设想。

 

  2. 假如热备份不成功,所得结果则不能用于时间点的恢复。

 

3. 因为难于维护,所以需要特别仔细小心,不允许在操作时半途而废。

分享到:
评论
29 楼 3eee 2010-09-17  
lz上了吗?我也在这公司呆过,不过是分公司,面试挺BT的,当时入职的时候做了一个好像有千把题的心理测试题目。
28 楼 agui_xiaowei 2010-09-16  
3. 以下哪行有错?
  1 SELECT deptno
  2 FROM emp
  3 GROUP BY deptno
  4 HAVING COUNT(deptno)=
  5 (SELECT max(count(deptno))
  6 FROM emp
  7 GROUP BY deptno);
  A. Line 3
  B. Line 4
  C. Line 5
  D. Line 7
  E. 都没错.
答案是没错,我运行过了,可以查出结果。。。
27 楼 sunyuzhou 2010-08-17  
第2题 c把 decode
第3题 第四行有问题把,=后会返回多条记录
第4题 选A把,有锁

26 楼 supersun 2010-04-06  
liyueling 写道
楼主也辛苦了,已经很熟的高手们可以不看,但对于我这样的新手还是有学习的价值。


见笑,那时没见过大市面,以为那公司很牛逼,其实业界都知道也就那样
25 楼 supersun 2010-04-06  
yf42 写道
垃圾公司,当年我应届的时候让爷答了2个小时的题,还包括心里测验,最后给个垃圾offer,在莫名其妙的西5环,据说疯狂加班,没加班费,还曾经有拖欠工资的情况


那公司反正是半年前的事了,当时也没去,后来去了北三环,现在的公司不错,比那个好很多了
24 楼 yf42 2010-04-01  
垃圾公司,当年我应届的时候让爷答了2个小时的题,还包括心里测验,最后给个垃圾offer,在莫名其妙的西5环,据说疯狂加班,没加班费,还曾经有拖欠工资的情况
23 楼 liyueling 2010-04-01  
楼主也辛苦了,已经很熟的高手们可以不看,但对于我这样的新手还是有学习的价值。
22 楼 王者之剑 2009-11-12  
supersun 写道
novembersky 写道
显然不是DBA考试,DBA考试最起码也得考个bind peeking之类的


神州数码思特奇就考了“绑定变量是什么意思”?,而且是程序员的JAVA笔试题,还有JS的继承问题,请给我讲讲这些知识吧,我确实不会

http://www.albertsong.com/read-24.html
我以前写的
21 楼 supersun 2009-11-11  
feifire 写道
王者之剑 写道
真的有IFELSE函数?



呵呵  我也是在想呢  DECODE() 就可以啊   哪儿来的IFELSE()啊?  说真的,我还真没有见过  -_-##



谢谢纠正
20 楼 supersun 2009-11-11  
zhiyuanmiao 写道
好几个错误答案,lz有点误人子弟啊


题目上我注明了答案是我自己做的,仅供参考了
19 楼 supersun 2009-11-11  
novembersky 写道
显然不是DBA考试,DBA考试最起码也得考个bind peeking之类的


神州数码思特奇就考了“绑定变量是什么意思”?,而且是程序员的JAVA笔试题,还有JS的继承问题,请给我讲讲这些知识吧,我确实不会
18 楼 supersun 2009-11-11  
150531932 写道
husai 写道
4. 当一个程序执行了 SELECT...FOR UPDATE 语句, 以下哪个步骤必须需要完成?
  A. 执行 COMMIT or ROLLBACK 结束 transaction, 即使并没有数据改变。
  B. 如果有数据改变,则需要执行commit or rollback 来结束 transaction。
  C. 由于只有数据确实改变后,一个transaction 才会开始,所以现在不需要COMMIT or ROLLBACK 被执行


这道题答案是c,lz你确定?
我选A

很明显是选A,自己在PL/SQL里试下就知道了


我是程序员不是搞数据库的,而且我也不是计算机和软件行业出身,题目上我也注明了答案是我自己做的仅供参考了
17 楼 supersun 2009-11-11  
jkfzero 写道
据可靠消息说薪水3k。


听说他们公司的薪水不是很高,应该就这个数,而且工资发的不及时
16 楼 macadam 2009-11-11  
显然不是程序的题 dbA的.
15 楼 cys0429831 2009-11-10  
diegoball 写道
考的有点简单了,不晓得薪水能开的了多少.

你都能做对?太猛了
14 楼 蔡华江 2009-11-10  
应该是程序员面试题,不过感觉有点偏。
如果不拿着参考资料,确实应该不会有太多人知道热备恢复之类的。
不过感觉对于DBA来说,应该不至于考这么多的SQL、甚至是特性函数才对。
13 楼 novembersky 2009-11-10  
显然不是DBA考试,DBA考试最起码也得考个bind peeking之类的
12 楼 zhxp791008 2009-11-10  
程序员还是DBA考试?
程序员太难了,有几个程序员知道啥热备、恢复。
DBA就容易了。
11 楼 zhiyuanmiao 2009-11-10  
好几个错误答案,lz有点误人子弟啊
10 楼 150531932 2009-11-10  
husai 写道
4. 当一个程序执行了 SELECT...FOR UPDATE 语句, 以下哪个步骤必须需要完成?
  A. 执行 COMMIT or ROLLBACK 结束 transaction, 即使并没有数据改变。
  B. 如果有数据改变,则需要执行commit or rollback 来结束 transaction。
  C. 由于只有数据确实改变后,一个transaction 才会开始,所以现在不需要COMMIT or ROLLBACK 被执行


这道题答案是c,lz你确定?
我选A

很明显是选A,自己在PL/SQL里试下就知道了

相关推荐

Global site tag (gtag.js) - Google Analytics