阿里巴巴公司DBA笔试题
http://searchdatabase.techtarget.com.cn/tips/2/2535002.shtml
注:以下题目,可根据自己情况挑选题目作答,不必全部作答.您也可以就相关问题直接找负责面试人员面述而不笔答
一:SQL tuning 类
1:列举几种表连接方式
2:不借助第三方工具,怎样查看sql的执行计划
3:如何使用CBO,CBO与RULE的区别
4:如何定位重要(消耗资源多)的SQL
5:如何跟踪某个session的SQL
6:SQL调整最关注的是什么
7:说说你对索引的认识(索引的结构、对dml影响、对查询影响、为什么提高查询性能)
8:使用索引查询一定能提高查询的性能吗?为什么
9:绑定变量是什么?绑定变量有什么优缺点?
10:如何稳定(固定)执行计划
11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么
12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql
二:数据库基本概念类
1:pctused and pctfree 表示什么含义有什么作用
2:简单描述table / segment / extent / block之间的关系
3:描述tablespace和datafile之间的关系
4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点
5:回滚段的作用是什么
6:日志的作用是什么
7:SGA主要有那些部分,主要作用是什么
8:oracle系统进程主要有哪些,作用是什么
三:备份恢复类
1:备份如何分类
2:归档是什么含义
3:如果一个表在2004-08-04 10:30:00 被drop,在有完善的归档和备份的情况下,如何恢复
4:rman是什么,有何特点
5:standby的特点
6:对于一个要求恢复时间比较短的系统(数据库50G,每天归档5G),你如何设计备份策略
四:系统管理类
1:对于一个存在系统性能的系统,说出你的诊断处理思路
2:列举几种诊断IO、CPU、性能状况的方法
3:对statspack有何认识
4:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响
5:对raid10 和raid5有何认识
五:综合随意类
1:你最擅长的是oracle哪部分?
2:喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一部分?
3:随意说说你觉得oracle最有意思的部分或者最困难的部分
4:为何要选择做DBA呢?
网上一搜一大把。答案你自己看吧
=========================================================================
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 <tablespace_name> ADD DATAFILE <datafile_name> SIZE <size>
40. 如何变动数据文件的大小?
解答:ALTER DATABASE DATAFILE <datafile_name> RESIZE <new_size>;
41. 哪个VIEW用来检查数据文件的大小?
解答: DBA_DATA_FILES
42. 哪个VIEW用来判断tablespace的剩余空间
解答:DBA_FREE_SPACE
43. 如何判断谁往表里增加了一条纪录?
解答:auditing
44. 如何重构索引?
解答: ALTER INDEX <index_name> 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
==========================================================================
淘宝网的问题
数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义?
表空间管理方式有哪几种,各有什么优劣。
本地索引与全局索引的差别与适用情况。
一个表a varchar2(1),b number(1),c char(2),有100000条记录,创建B-Tree索引在字段a上,那么表与索引谁大?为什么?
9i的data guard有几种模式,各有什么差别。
执行计划是什么,查看执行计划一般有哪几种方式。
简单描述一下nest loop与hash join的差别。
db file sequential read与db file scattered read等待的差别,如果以上等待比较多,证明了什么问题?
library cache pin与library cache lock是什么地方的等待事件,一般说明什么问题?
在一个24*7的应用上,需要把一个访问量很大的1000万以上数据级别的表的普通索引(a,b)修改成唯一约束(a,b,c),你一般会选择怎么做,请说出具体的操作步骤与语句。
如果一个linux上的oracle数据库系统突然变慢,你一般从哪里去查找原因。
说明一下对raid5与raid01/10的认识。
列举5个10g的新特性
==============================================================================
引用:http://topic.csdn.net/u/20080729/00/1a49ea4d-7a5c-49bb-8a58-86aa8f0ac5d6.html
1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。
2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。
类如:
101a1001
101a1001
102a1002
102a1003
103a1004
104a1005
104a1006
105a1007
105a1007
105a1007
结果:
102a1002
102a1003
104a1005
104a1006
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
每种员工的数量;
4、表A字段如下
month person income
月份 人员 收入
要求用一个SQL语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入
要求列表输出为
月份 当月收入 上月收入 下月收入
5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5
要求的处数据
2005-01-01 4
2005-01-02 5
合计 9
试用一个Sql语句完成。
6,数据库1,2,3 范式的概念与理解。
7,简述oracle行触发器的变化表限制表的概念和使用限制,行触发器里面对这两个表有什么限制。
8、oracle临时表有几种。
临时表和普通表的主要区别有哪些,使用临时表的主要原因是什么?
9,怎么实现:使一个会话里面执行的多个过程函数或触发器里面都可以访问的全局变量的效果,并且要实现会话间隔离?
10,aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引,
请用SQL列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。
11,简述SGA主要组成结构和用途?
12什么是分区表?简述范围分区和列表分区的区别,分区表的主要优势有哪些?
13,背景:某数据运行在archivelog,且用rman作过全备份和数据库的冷备份,
且所有的归档日志都有,现控制文件全部损坏,其他文件全部完好,请问该怎么恢复该数据库,说一两种方法。
14,用rman写一个备份语句:备份表空间TSB,level 为2的增量备份。
15,有个表a(x number(20),y number(20))用最快速高效的SQL向该表插入从1开始的连续的1000万记录。
===============================================================================
1如果信息采集管理系统(ICM)崩溃了怎么办?
2你如何加速打补丁的过程?
3打补丁的过程中出错了,你怎么办?
4请提供克隆过程和克隆之后采取的手工操作的大概步骤。
5介绍一下AutoConfig。AutoConfig是如何知道文件中的哪个树脂需要被放入哪一个文件的?
6你能告诉我,你对一个发生故障的自服务登录问题做哪些测试吗?你要检查哪个配置文件操作选项和文件?
7如果你不能看到并发管理日志和输出文件,是哪里出错了?
8你是如何更改并发管理日志和输出文件的位置的?
9如果用户正遇到性能方面的问题,你如何找到问题的原因?
10你如何更改应用程序的密码?
11请写出DBC文件的位置,并且解释它的重要性和应用程序如何知道DBC文件名?
答案
1所有其他的管理器都会继续工作。ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器。
实际的技术对话
少数能够通过电话面试的候选人能够到工作地点去进行面试,Burleson称之为候选人的技术化。他建议面试人员提出一些专业的,例如“中的SYS用户默认密码是多少?”
这些问题没有捏造的答案,面试人员可以轻松地判断候选人的技术能力。“只有那些实践过的员知道答案是‘change_on_install,’” Burleson说。“经验丰富的管理员可以立即发现谎话。”
然后就是最后一个阶段,与公司的IT人员在线会见。这些会见通常会持续半天,这是真正在测试你是否会被雇佣。有时候是一些开放的问题,例如“如果一个终 端用户抱怨性能差劲,你要做的第一件事情是什么?”这些问题的答案非常具有启发性,Burleson说,因为他们也没有正确答案,他们只是看看候选人是如 何独立思考的,或者是数据库管理员有多少创新思维。
也许更重要的是,这个最后的交流就是判断一些无形的,例如人际关系技巧的过程。拥有一个能够成为团队中一员的数据库管理员对于大多数公司(即使不是所有的公司)来说都是优先考虑的。在很多情况下 ,这些无形的东西形成了差别。
“我见过公司拒绝了技术能力最强的候选人。这样的事情总是发生,” Burleson指出。“数据库管理员需要与其他人打好关系。”
最后,Burleson说,忘掉星期五可以穿便装的习惯。
“面试中穿得太随便是对自己的极度不负责,”他说。
“外表确实重要。”
=================================================================================
整理了几个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.
评价:这里的回答并不是十分全面,这些问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽的答案,只需要通过你的解答使面试考官了解你对ORACLE概念的熟悉程度。
2
2.1你可以合并多个补丁。
2.2你可以为一个非交互的补丁创建一个响应文件。
2.3你可以通过选项(nocompiledb, nomaintainmrc, nocompile)来应用补丁,并且在应用了所有的补丁之后,一次运行它们。
3 查看失败工作的日志,找到并且纠正错误,用adctrl 工具重新开启工作。
4在源文件上(所有层)运行pre-clone,使用RMAN复制(或者从热或者冷备份中重新存储数据库),拷贝文件系统,然后在目标文件(所有层)上运行post-clone 。
手工步骤(可能会更多):
4.1改变所有的非网站配置选项数值(快速克隆的话,只改变网站级别的配置文件选项)。
4.2 修改工作流和并发管理器表。
4.3更改打印机。
5 AutoConfig 使用了一个上下文文件来维护关键的配置文件。一个上下文文件就是一个文件,在$APPL_TOP/admin 目录下,进行集中式的存储。
当你运行AutoConfig 的时候,它读取XML文件,并且创建所有的AutoConfig 管理配置文件。
对于AutoConfig维护的每个配置文件,都存在一个临时文件来判断哪个数值是从哪个XML文件中得来的。
6
6.1检查DBC文件中的guest的用户名和密码,配置选项guest的用户名和密码、数据库。
6.2查看apache/jserv是否启动了。
6.3运行IsItWorking, FND_.PING, aoljtest等。
7很有可能是FNDFS监听器停止了。看看 FND_CONCURRENT_REQUESTS 表中的OUTFILE_NODE_NAME 和 LOGFILE_NODE_NAME 的数值。看看FND_NODES 表。看看tnsnames.ora 中的FNDFS_ entry 。
8日志问卷爱女的位置是由$APPLCSF/$APPLLOG 参数来决定的,输出文件的位置是由$APPLCSF/$APPLOUT 决定的。
9
9.1追踪这个会话(用等待)并且使用tkprof 来分析追踪文件。
9.2生成statspack 报告并进行分析。
9.3使用top/iostat/sar/vmstat 监控O/s 。
9.4通过ping这类基本的测试结果来判断网络的瓶颈。
10
10.1 使用FNDCPASS 来更改APPS密码。
10.2 手工修改wdbsvr.app/CMD.dat 文件。
10.3 更改所有从其他环境指过来的数据库链接。
11
11.1位置:$FND_TOP/secure directory
11.2 重要性:在其他事务中指向数据库。
11.3 应用程序通过使用“Applications Database Id.”来了解DBC文件的名字。
================================================================================
7. 比较truncate和delete 命令
解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.
-------------------------------------------------------------------------------------------------------------------------------------------
(1) A 表中有100条记录.
SELECT * FROM A WHERE A.COLUMN1 = A.COLUMN1
这个语句返回几条记录?
(2) CREATE SEQUENCE PEAK_NO
SELECT PEAK_NO.NEXTVAL FROM DUAL --> 假设返回1
10秒中后,再次做
SELECT PEAK_NO.NEXTVAL FROM DUAL --> 返回多少?
(3) SQL> connect sys as sysdba
Connected.
SQL> insert into dual values ( 'Y');
1 row created.
SQL> commit;
Commit complete.
SQL> select count(*) from dual;
COUNT(*)
----------
2
SQL> delete from dual;
commit;
-->DUAL里还剩几条记录?
自己解答:
(1) 100
(2) 2
(3) 1
请大家鉴定
去这个网站吧:各种各样的数据库面试题
http://www.geekinterview.com/Interview-Questions/Oracle
=============================================================================
. 解释冷备份和热备份的不同点以及各自的优点
解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将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产品的目录。
==============================================================================
1.解释冷备份和热备份的不同点以及各自的优点
2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?
3.如何转换init.ora到spfile?
4.解释data block , extent 和 segment的区别(这里建议用英文术语)
5.给出两个检查表结构的方法
6.怎样查看数据库引擎的报错
.
7事务是什么?
8 oracle中truncate和delete命令有何区别?
9 Oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其存储长度及类型有何区别?
10 什么是聚集索引,什么是非聚集索引,什么又是主键?
==============================================================================
1、EXISTS与IN的执行效率问题
在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下,如果另一个表是小表用in 效率高,是大表用exists 效率高。 2、PL/SQL包含哪些部分 Pl/sql 的块结构包括:定义部分,执行部分,异常处理部分。 3、BETWEEN AND 边界问题 Between and 包括边界值 4、带条件的查询语句 Select * from xx where …; 6、索引的创建问题 参考: 要在自己的模式中创建索引,满足的条件: A、被索引的表或者簇在自己的模式中; B、在要被索引的表上具有index 权限或者有create any index 系统权限。 要在其它模式中创建索引,满足的条件: A、具有create any index 系统权限; B、其它模式的拥有者在保存索引或索引分区的表空间中有限额,或者他具有unlimited tablespace 7、DML,DDL有哪些语句 DDL 数据定义语言: CREATE,DROP,ALTER,GRANT,REVOKE,TRUNCATE,ANALYZE DML 数据操纵语言: SELECT,INSERT,UPDATE,DELETE,SET TRANCTION等 9、数据库的COMMIT与ROLLBACK COMMIT:提交事务 ROLLBACK:回滚事务 11、DELETE与TRUNCATE的区别 truncate可以快速清空表,释放空间,但不能回滚; delete可删除指定条件记录并可回滚 |
=================================================================================
1.存储过程和函数的区别
存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。 2.事务是什么? 事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务: 原子性 事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 一致性 事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。 隔离性 由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。 持久性 事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。 3.游标的作用?如何知道游标已经到了最后? 游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后。 4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。 事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。 语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。 |
=============================================================================
. 解释冷备份和热备份的不同点以及各自的优点
解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将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
============================================================================
1.在数据库中条件查询速度很慢的时候,如何优化?
1.建索引
2.减少表之间的关联
3.优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据量大的表排在前面
4.简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据
============================================================================
1 使用函数时,下列哪一个描述是不正确的
A 不要忘记获取返回值
B 不能用过程来调用函数
C 可以定义不能返回值的函数
D 可以定义没有返回类型的函数
2 下列关于包的说法,不正确的是
A 不能够在还没有编写包主体的情况下调用包
B 主体包含了规范的实现、以及私有例程/数据/变量
C 不能直接调用Oracle提供的包
D DBMS_OUTPUT程序包可以让用户输出文本信息
3 PL/SQL匿名块中
A 注释可以嵌套 B 执行体可以嵌套
C 所有组成成分都不能嵌套 D 以上答案均不正确
第一题选B,过程完全可以调用函数,只要接收回值就和调用其他过程一样。
第二题选C,oracle 提供的包就是一些pl/sql形式的API,当然可以调用了。
第三题选B,一个使用 begin/end 的块中可以包含其他 begin/end 块。
==============================================================================
1 如何增加buffer cache的命中率?
解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_advice . 如果有必要更改,可以使用 alter system set db_cache_size 命令
2 ora-01555的应对方法?
解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过增大rollback seg来解决问题。当然也需要察看一下具体造成错误的sql文本
3. 解释$oracle_home和$oracle_base的区别?
解答:oracle_base是oracle的根目录,oracle_home是oracle产品的目录。
============================================================================
ORACLE 面试题及答案
时间:2008-05-22 18:44:34 来源: 作者: 点击量: 295 [ 繁體中文 ]
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中的两种表及它们分别含有的数据 软件开发网 www.mscto.com
解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而 dimension tables 存放对fact table 某些属性描述的信息
10. FACT Table上需要建立何种索引?
解答:位图索引 (bitmap index)
11. 给出两种相关约束?
解答:主键和外键
12. 如何在不影响子表的前提下,重建一个母表
解答:子表的外键强制实效,重建母表,激活外键 软件开发网 www.mscto.com
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的区别? 软件开发网 www.mscto.com
解答: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 软件开发网 www.mscto.com
解答: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 <tablespace_name> ADD DATAFILE <datafile_name> SIZE <size>
40. 如何变动数据文件的大小?
解答:ALTER DATABASE DATAFILE <datafile_name> RESIZE <new_size>;
41. 哪个VIEW用来检查数据文件的大小?
解答: DBA_DATA_FILES 软件开发网 www.mscto.com
42. 哪个VIEW用来判断tablespace的剩余空间
解答:DBA_FREE_SPACE
43. 如何判断谁往表里增加了一条纪录?
解答:auditing 软件开发网 www.mscto.com
44. 如何重构索引?
解答: ALTER INDEX <index_name> 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
================================================================================
几个删除重复记录的sql语句
-
SQL code
-
( 1 )用rowid方法据据oracle带的rowid属性,进行判断,是否存在重复,语句如下: 查数据: select * from table1 a where rowid != ( select max (rowid) from table1 b where a.name1 = b.name1 and a.name2 = b.name2......) 删数据: delete from table1 a where rowid != ( select max (rowid) from table1 b where a.name1 = b.name1 and a.name2 = b.name2......) ( 2 ) group by方法 查数据: select count (num), max (name) from student -- 列出重复的记录数,并列出他的name属性 group by num having count (num) > 1 -- 按num分组后找出表中num列重复,即出现次数大于一次 删数据: delete from student group by num having count (num) > 1 这样的话就把所有重复的都删除了。 ( 3 )用distinct方法 - 对于小的表比较有用 create table table_new as select distinct * from table1 minux truncate table table1; insert into table1 select * from table_new; 本文介绍了一个删除 MySQL 表中有重复数据的办法 CREATE TEMPORARY TABLE bad_temp2(id VARCHAR ( 10 ), name VARCHAR ( 20 )) TYPE = HEAP; INSERT INTO bad_temp2(name) SELECT DISTINCT name FROM bad_table2; DELETE FROM bad_table2; INSERT INTO bad_table2(id,name) SELECT id,name FROM bad_temp2; 以上方法采用建立临时表的办法删除了 bad_table2 中 name 字段有重复的记录。========================================================================
-
oracle数据库方面的面试题目, 请看下面网址:
http://www.pconline.com.cn/pcjob/other/data/oracle/0403/335640.html
-
========================================================================
-
性能优化有必要去看看。
http://www.dbasupport.com
-
=========================================================================
-
我给你留两个吧
问题:为管理岗位业务培训信息,建立3个表:
S(S#,SN,SD,SA)S#,SN,SD,SA分别代表学号,学员姓名,所属单位,学员年龄
C(C#,CN)C#,CN分别代表课程编号,课程名称
SC(S#,C#,G)S#,C#,G分别代表学号,所选修的课程编号,学习成绩
问题1.1使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位;
问题1.2使用标准SQL嵌套语句查询不选修课程编号民为‘C5’的学员姓名和所属单位;
问题1.3使用标准SQL嵌套语句查询选修课程编号民为‘C2’的学员姓名和所属单位;
问题1.4使用标准SQL嵌套语句查询选修课程名称为‘税收基础’的学员学号和姓名;
问题1.5查询选修了课程的学员人数
问题1.6查询选修课程超过5门的学员学号和所属单位
问题:数据库
产品表(PRODUCT)
PRODUCTID - 产品 - 定价 - 生产地
1 NAME1 110 北京
2 NAME2 115 北京
3 NAME3 120 天津
4 NAME4 125 天津
销售计划(PLAN)
PRODUCTID - 客户名 - 订货数量 - 销售单价
2 m 2 250
1 n 3 115
3 n 1 300
4 m 2 400
问题3。1获取各生产地的产品和销售总金额(销售总金额=销售单价*订货数量)
问题3。2求客户中销售总金额最大值的SQL语句
问题3。3删除产品表中,销售单价<300的产品
问题3。4求销售计划表中记录有两笔以上的客户名。
========================================================================
-
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 DECLARE BEGIN EXCEPTION END
5 看下面代码,正确的是
A DECLARE
DBMS_OUTPUT.PUT_LINE(’定义部分’);
BEGIN
DBMS_OUTPUT.PUT_LINE(’语句部分’);
END;
B BEGIN
NUM NUMBER:=100;
DBMS_OUTPUT.PUT_LINE(’NUM 的值为:’||NUM);
END;
C DECLARE
NUM NUMBER:=100;
BEGIN
NUM:=NUM+NUM/2;
DBMS_OUTPUT.PUT_LINE(’NUM 的值为:’||NUM);
END;
D BEGIN
NUM NUMBER:=100;
DECLARE
NUM:=NUM+NUM/2;
DBMS_OUTPUT.PUT_LINE(’NUM 的值为:’||NUM);
END;
6 看下面语句正确的是
A IF(N%M=0) THEN
DBMS_OUTPUT.PUT_LINE(’这是一个偶数’);
ELSEIF(N%M=1) THEN
DBMS_OUTPUT.PUT_LINE(’这是一个奇数’);
END IF;
B DECLARE
VAR NUMBER:=0;
BEGIN
VAR:=&V;
CASE
WHEN VAR=1 THEN
DBMS_OUTPUT.PUT_LINE(’A');
WHEN VAR=2 THEN
DBMS_OUTPUT.PUT_LINE(’B');
ELSE
DBMS_OUTPUT.PUT_LINE(’O');
END CASE;
END;
C DECLARE
I NUMBER:=0;
BEGIN
FOR I IN 10..20 LOOP
DBMS_OUTPUT.PUT_LINE(I);
END LOOP;
END;
D LOOP
DBMS_OUTPUT.PUT_LINE(I);
END LOOP;
7. 当在一个PLSQL块中通过查询得到一个值,但是没有任何值返回时,会产生异常吗?如果产生,是什么异常?
A 不会有异常,只不过没有结果而已
B 有异常,异常为No_data_found
C 有异常,异常为Value_erro
D 编译都不通过
8. 在PLSQL块中处理异常的语句是
A EXCEPTION
IF EXCEPTION_NAME THEN
DBMS_OUTPUT.PUT_LINE();
END;
B EXCEPTION
WHEN EXCEPTION_NAME THEN
DBMS_OUTPUT.PUT_LINE();
END EXCEPTION ;
C WHEN EXCEPTION_NAME THEN
DBMS_OUTPUT.PUT_LINE();
D BEGIN
NULL;
EXCEPTION
WHEN EXCEPTION_NAME THEN
DBMS_OUTPUT.PUT_LINE();
END ;
9. 当用户在PLSQL块中,像抛出自定义异常或者是系统异常时,所使用的关键字是
A THROW
B RAISE
C RAISE_APPLICATION_ERROR
D EXCEPTION
10. 在自定义异常中,用户可用的错误号范围在
A 20000 ~ 29999
B -20000 ~ -20999
C 1~65535
D 没有限制
11. 阅读代码
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE(’外不快’);
DECLARE
MYEXCE EXCEPTION;
BEGIN
RAISE MYEXCE;
END;
EXCEPTION
WHEN MYEXCE THEN
DBMS_OUTPUT.PUT_LINE(’异常捕获’);
END;
出现的结果是
A 编译时报错 PLS-00201: 必须说明标识符 ‘MYEXCE’
B 运行时报错,在外部无法捕获到内部异常
C 可以正常执行
D 编译时报错,PLSQL块不能嵌套
12. 使用游标的步骤,有哪几步
A 打开游标、使用游标、关闭游标
B 定义游标、打开游标、使用游标、关闭游标
C 定义游标、使用游标、关闭游标
D 定义游标、打开游标、使用游标、
13 游标有哪几种类型
A 静态游标、动态游标
B 隐式游标、显示游标
C 变量游标、常量游标
D 参数游标、ref 游标
14 阅读下列代码
DECLARE
TOTALEMP NUMBER;
BEGIN
SELECT COUNT(*) INTO TOTALEMP FROM EMP;
IF(SQL%FOUND) THEN
DBMS_OUTPUT.PUT_LINE(’有数据’);
END IF;
END;
这段代码中是否使用了游标,如果使用了,使用的是什么类型的游标
A 使用了游标,游标类型为参数游标
B 使用了游标,游标类型为式游标
C 使用了游标,游标类型为ref 游标
D 这段代码中根本没有使用到游标
15. 下列哪个游标的定义是正确的
A TYPE CURSOR EMPCUR IS SELECT * FROM EMP;
B TYPE EMPCUR IS CURSOR OF SELECT * FROM EMP;;
C CURSOR EMPCUR IS SELECT * FROM EMP;
D TYPE EMPCUR IS REF CURSOR AS SELECT * FROM EMP;
16 在存储过程中,参数模式有哪几种
A IN、OUT
B IN、OUT、IN OUT
C INPUT、OUTPUT
D OUT INOUT
17 关于存储过程返回值的类型,说法对的是
A 只能是基本类型
B 可以是任何类型
C 只能是 NUMBER VARCHAR2 DATE BOOLEAN
D 可以使基本类型和用户类型
18 存储过程和函数的区别是
A 过程可以返回多个值,而函数只能返回一个值
B 函数可以作为PLSQL表达式的一部分,而过程不能
C 函数可以返回多个值,过程只能返回一个
D 函数和过程都必须包含RETURN语句
19 过程和函数的重载,正确的是
A Oracle中过程和函数不能重载
B Oracle中的过程和函数只有在包中存在时,才能被重载
C Oracle中的过程和函数随时随地都可以被重载
D 函数可以重载,过程不能被重载
20 Oracle中程序包的特点是
A 可以写函数和过程
B 任何能够定义在声明部分的内容,都可以出现在包中,包就是用来对代码进行封装的
C 包是一个可选结构,其中只能定义函数和过程
D 定义在包中的过程和函数不能被外部代码所访问
21 下面关于保的说法错误的是
A 有包头,就必须有包体
B 包可分为包头和包体两部分,但包体不是必须的
C 如果只用函数和过程,则可以只有包体,没有包头
D 包可以继承
22 阅读代码,函数被正确重载是
A CREATE OR REPLACE PACKAGE TESTPACKAGE AS
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2)
RETURN BOOLEAN;
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 IN OUT VARCHAR2)
RETURN BOOLEAN;
END TESTPACKAGE;
B CREATE OR REPLACE PACKAGE TESTPACKAGE AS
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2);
RETURN BOOLEAN;
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM3 OUT VARCHAR2);
RETURN VARCHAR2;
END TESTPACKAGE;
C CREATE OR REPLACE PACKAGE TESTPACKAGE AS
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2);
RETURN BOOLEAN
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT NUMBER);
RETURN OBJECT
END TESTPACKAGE;
D CREATE OR REPLACE PACKAGE TESTPACKAGE AS
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2);
RETURN BOOLEAN
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT CHAR);
RETURN OBJECT
END TESTPACKAGE;
23 触发器有哪些级别
A 行级触发器和字段级触发器
B 行级触发器
C 语句及触发器
D行级触发器和语句及触发器
26 触发器有哪些种类
A BEFORE和AFTER
B BEFORE 和BEFORE ROW
C AFTER 和AFTER STATEMENT
D FOR EACH ROW和FOR EACH STATEMENT
27 触发器的执行过程是
A 行前(多次)、语句前(多次)、行后(多次)、语句后(一次)
B 语句前(一次)、行前(多次)、字段有效验证、行后(多次)、语句后(一次)
C语句前(一次)、语句后(一次)、行前(多次)、行后(多次)
D行前(多次)、行后(多次)、语句前(一次)、语句后(一次)
28 触发器的动作有哪几个
A INSERT、UPDATE、DELETE
B INSERT、ALTER、DROP
C UPDATE、CREATE
D REMOVE、INSERT、DELETE
29 看代码
CREATE OR REPLACE TRIGGER STUDENTUPDATEINFO
AFTER INSERT OR UPDATE OR DELETE ON STUDENT
FOR EACH ROW
WHEN (NEW.STUID IS NOT NULL OR OLD.STUID IS NOT NULL)
BEGIN
CASE
WHEN INSERTING THEN
DBMS_OUTPUT.PUT_LINE(:NEW.STUNAME);
DBMS_OUTPUT.PUT_LINE(:OLD.STUNAME);
DBMS_OUTPUT.NEW_LINE();
DBMS_OUTPUT.PUT_LINE(’STUDENT表增加一条信息!!!’);
WHEN UPDATING THEN
DBMS_OUTPUT.PUT_LINE(:NEW.STUNAME);
DBMS_OUTPUT.PUT_LINE(:OLD.STUNAME);
DBMS_OUTPUT.NEW_LINE();
DBMS_OUTPUT.PUT_LINE(’STUDENT表更新一条信息!!!’);
ELSE
DBMS_OUTPUT.PUT_LINE(:NEW.STUNAME);
DBMS_OUTPUT.PUT_LINE(:OLD.STUNAME);
DBMS_OUTPUT.NEW_LINE();
DBMS_OUTPUT.PUT_LINE(’STUDENT表删除一条信息!!!’);
END CASE;
END;
当执行了以下命令后
INSERT INTO STUDENT VALUES(’STU0010′,’TOM’,'TB007′,’JAVA’);
UPDATE SET CALSSNAME=’ORACLE’ WHERE STUID=’STU0010′;
DELETE STUDENT WHERE STUID=’STU0010′
输出结果为:
A INSERT后输出: TOM TOM STUDENT表增加一条信息!!!
UPDATE后输出: TOM TOM STUDENT表更新一条信息!!
DELETE后输出: TOM TOM STUDENT表删除一条信息!!!
B INSERT后输出: TOM STUDENT表增加一条信息!!!
UPDATE后输出: TOM TOM STUDENT表更新一条信息!!
DELETE后输出: TOM STUDENT表删除一条信息!!!
C INSERT后输出: TOM TOM STUDENT表增加一条信息!!!
UPDATE后输出: TOM STUDENT表更新一条信息!!!
DELETE后输出: TOM STUDENT表删除一条信息!!!
D INSERT后输出: TOM STUDENT表增加一条信息!!!
UPDATE后输出: TOM TOM STUDENT表更新一条信息!!
DELETE后输出: STUDENT表删除一条信息!!!
-
=================================================================
-
1. ORACLE用来判断列值是否为空的操作符是____
A ==NULL
B IS NULL
C AS NULL
D NULLIS
2 分析以下的 SQL命令
SELECT i.id_number, m.id_number
FROM inventory i, manufacturer m
WHERE i.manufacturer_id = m.id_number
ORDER BY inventory.description;
如何修改上述命令使其成功执行()
A ORDER BY description
B ORDER BY i.description
C WHERE inventory.manufacturer_id = m.id_number
ORDER BY inventory.description
D ORDER BY inventory.description;
3. 在客户定单表(CUSTOMER)中有一列为单价(PRICE),写一个SELECT命令显示所有单价在500以上的查询语句。
A SELECT * FROM CUSTOMER WHERE PRICE>500;
B SELECT * FROM CUSTOMER WHERE PRICE BETWEEN 500 AND *;
C SELECT * FROM CUSTOMER WHERE PRICE LIKE ‘%500%’;
D SELECT * FROM CUSTOMER WHERE PRICE>=500;
4. 分析以下SQL 命令:
SELECT price
FROM inventory
WHERE price BETWEEN 1 AND 50
AND (price IN(55, 30, 95);
命令执行后的输出结果是:( )
A 55
B 30
C 95
D NULL
5. 分析以下的SQL 命令:
SELECT manufacturer_id
FROM inventory
WHERE manufacturer_id LIKE ‘%N/%P/%O%’ ESCAPE ‘/’;
命令执行的返回结果是()
A 所有包含’NPO’的纪录
B 所有包含’N/P/O’的纪录
C 所有包含’N%P%O’的纪录
D 所有包含’%N/P/O%’的纪录
6. 分析以下的SQL命令:
SELECT i.id_number, m.manufacturer_name
FROM inventory i, manufacturer m
WHERE i.manufacturer_id(+) = m.id_number;
WHERE 子句中的(+)是什么含义?
A 将inventory表中不满足条件的记录也查出来
B 将i.manufacturer_id+ m.id_number
C将manufacturer表中不满足条件的记录也查出来
D 不能这样写,语法错误
7. 写一SQL语句实现以下功能,把inventory表中的ORDER_DATE 值 ‘23-MAY-00′ 显示成 ‘01-JAN-00′
A SELECT ROUND(order_date, ‘YEAR’) FROM inventory;
B SELECT TO_DATE(order_date, ‘DD-MM-YY’) FROM inventory;
C SELECT TO_CHAR(order_date, ‘DD-MM-YY’) FROM inventory;
D 都不对
8.下面的SQL命令显示的结果是什么类型:
TO_DATE(’01-JAN-1998′) – TO_DATE(’01-DEC-1996′)
A 数值
B 字符串
C 日期
D 出现错误
9. 简述ROUND 和TRUNC 操作的区别?
A ROUND在截掉数据时有四舍五入的判断,TRUNC直接按要求截掉没有进位。
B 都是将数据按指定的长度截断
C TRUNC是四舍五入,ROUND是截断
D 都会四舍五入
10. 简述SUBSTR和LENGTH的主要功能。
答案:SUBSTR:用来在一个字符串中求子串
LENGTH:用于求字符串的长度。
11. 分析以下的SQL命令:
SELECT CONCAT(UPPER(SUBSTR(location, 1, 3)), dept_number) “Department Location”
FROM department;
哪个function 最后执行?
a.UPPER
答案:concat
12. 分析以下的SQL命令:
SELECT *
FROM product
WHERE LOWER(description) = ‘CABLE’;
命令能否执行?是否有结果返回?为什么?
答案:命令可以执行,没有结果返回,因为查询条件中的LOWER把查询列值改为小写,而等号右侧为大写,所以不会有结果返回。
13. 在PLAN表中有一列为SPECIES_ID ,该列与SPECIES 表的ID列对应,但后者包含空值,要想在显示结果中包含SPECIES 表的ID列为空值的行的信息,用那种连接条件可以实现?
答案:外连接
14. 分析以下的 SQL 命令:
SELECT i.id_number, m.manufacturer_id
FROM inventory i, inventory m
WHERE i.manufacturer_id = m.region_id_number;
该命令中使用的连接条件是()连接
答案:自连接
15 .外连接的符号可以放在连接条件的哪边,可以两边同时使用吗?
答案:放在包含空值的一边,不可以两边同时使用
16. 如果用等值连接来查询5张表内的信息,至少需要几个连接条件?
答案:至少需要4个连接条件。
17. 分析以下的 SQL 命令:
SELECT i.id_number, m.id_number
FROM inventory i, manufacturer m
WHERE i.manufacturer_id = m.id_number
ORDER BY 1;
该命令执行结果的排序是按那一列的值排序的?
答案:按inventory 表的id_number列排序
18. 如果在where子句中有两个条件要同时满足,应该用以下哪个逻辑符来连接
A.OR
B.NOT
C.AND
D.NONE
答案 c
19. 外连接的条件可以放在以下的那一个子句中
A.FROM
B.WEHRE
C.SELECT
D.HAVING
E.GROUP BY
F.ORDER BY
答案 B
20. 在从两个表中查询数据时,连接条件要放在哪个子句中
A.FROM
B.WHERE
C.SELECT
D.HAVING
E.GROUP BY
答案 B
21 用以下哪个子句来限制分组统计结果信息的显示
A.FROM
B.WEHRE
C.SELECT
D.HAVING
E.GROUP BY
F.ORDER BY
答案 D
22. 数据库中的 TEACHER 表的结果如下:
ID NUMBER(7) PK
SALARY NUMBER(7,2)
SUBJECT_ID NUMBER(7)
至少有两行以上的SUBJECT_ID值是不同的
分析以下的 SQL命令:
1. SELECT ROUND(SUM(salary),-4)
FROM teacher;
2. SELECT subject_id, ROUND(SUM(salary),-2)
FROM teacher
GROUP BY subject_id;
两个命令的显示结果相同吗?哪个命令显示的结果会多些?
答案:不同,命令2会返回更多的结果
23. 如果想对分组统计的结果信息进行筛选,用where 条件子句能实现吗?如果不行该用什么子句实现?
答案:用where子句不能实现,应该用having 子句
24. 以下需求中哪个需要用分组函数来实现?
A.把ORDER表中的定单时间显示成 ‘DD MON YYYY’ 格式
B.把字符串 ‘JANUARY 28, 2000′ 转换成日期格式
C.显示PRODUCT 表中的COST 列值总量
D.把PRODUCT表中的DESCRIPTION列用小写形式显示
答案 C
25. 用以下的SQL语句查询数据库:
SELECT id_number “Part Number”, SUM(price * quantity) TOTAL, description
FROM inventory
WHERE price > 5.00
ORDER BY “Part Number”, 3;
哪一句会产生错误?
A.FROM INVENTORY
B.WHERE PRICE > 5.00
C.ORDER BY “PART NUMBER”, 3;
D.SELECT id_number “Part Number”, SUM(price * quantity) TOTAL, description
答案 D
26. EMPLOYEE 表包含以下的列:
EMP_ID NUMBER(9)
NAME VARCHAR2(25)
BONUS NUMBER(5,2)
DEPT_ID NUMBER(9)
如果想计算所有具有bonus的职员的bonus平均值,不考虑该列包含空值的那些雇员,用什么功能函数可以实现?
答案:使用AVG函数可以实现。
27. 写出包含 SELECT,FROM ,HAVING ,WHERE,GROUP BY ,ORDER BY子句的书写顺序
答案:SELECT FROM WHERE GROUP HAVING ORDER BY
28. 分析以下的SQL命令
SELECT id_number “Part Number”, SUM(price) “Price”
FROM inventory
WHERE price > 5.00
GROUP BY “Part Number”
ORDER BY 2;
哪一个子句会产生错误?如何修改
答案:第四句GROUP BY “Part Number”会产生错误,应改为GROUP BY id_number
29. 在单行子查询中,子查询的返回结果为多少,返回2行可以吗?
答案:只能返回一行,否则会出错。
30. 以下操作符中哪个可以用做单行简单查询的操作符
A.=
B.IN
C.LIKE
D.BETWEEN
答案 A
31. 分析以下的 SQL 命令:
SELECT id_number
FROM inventory
WHERE manufacturer_id IN
(SELECT manufacturer_id
FROM inventory
WHERE price < 1.00
OR price > 6.00);
该子查询的能否执行,是否有语法错误?
答案:没有语法错误,可以执行为
32. 分析以下SQL命令:
SELECT employee_id, name
FROM employee
WHERE employee_id NOT IN (SELECT employee_id
FROM employee
WHERE department_id = 30
AND job = ‘CLERK’);
如果子查询返回空值,结果会是什么样?
答案 没有结果返回。
33. 如果用户用UPDATE 命令修改了表中的数据值,是否可以恢复回来?
答案:如果事务没有提交可以用ROLLBACK 恢复回来。
34.用户对某表中的数据做修改操作,还没有提交,此时机器断电,修改结果是否能保存在数据库中?
答案:不能,因为非正常结束的事务会被ORACLE 回滚掉
35. 以下那些命令可以暗含提交操作?
A.GRANT
B.UPDATE
C.SELECT
D.ROLLBACK
答案 A
36. 那种类型的约束可以自动创建索引?
答案:UNIQUE ,PRIMART KEY
37 哪中类型的约束只能定义在列级
A. CHECK
B.UNIQUE
C.NOT NULL
D.PRIMART KEY
E.FOREIGN KEY
答案 C
38. 可以在以下哪个对象上创建视图? (选择两个)
A.VIEW
B.QUERY
C.TABLE
D.COMMAND
E.TRANSAction
答案 A,C
39. 分析以下SQL 命令:
CREATE FORCE VIEW parts_vu (company, contact)
AS SELECT manufacturer_name, contact_name
FROM inventory
WITH READ ONLY;
在 PARTS_VU 视图上可以执行UPDATE操作吗?为什么?可以进行什么操作?
答案: 不能执行UPDATE操作,因为该视图是只读的,只能进行select (检索)操作
40. 表PERSONNEL 的结构如下:
ID NUMBER(9)
LAST_NAME VARCHAR2(25)
FIRST_NAME VARCHAR2(25)
MANAGER_ID NUMBER(9)
这里, 部门的管理者也看作是雇员..
分析以下两个命令:
SELECT p.last_name, p.first_name, m.last_name, m.first_name
FROM personnel p, personnel m
WHERE m.id = p.manager_id;
SELECT p.last_name, p.first_name, m.last_name, m.first_name
FROM personnel p, personnel m
WHERE m.manager_id = p.id;
两个的执行结果一样吗?
答案 一样,但格式不同
41. 如果一个表中的数据包含许多空值,是否适合建索引?
答案 适合
42. 分析以下命令
CREATE PUBLIC SYNONYM parts
FOR marilyn.inventory;
它的作用是什么?
为用户marilyn的inventory 对象(不一定是表)建一个同义词或叫别名
43.分析以下的SQL命令
CREATE SEQUENCE line_item_id
START WITH 10001
MAXVALUE 999999999
NOCYCLE;
请问这个序列NOCYCLE关键字的含义是什么?
答案:当序列的值增长到最大值的时候,会从1001开始从新使用
44. DEPARTMENT 表的结构如下:
DEPT_ID NUMBER(9)
DEPT_NAME VARCHAR2(20)
REGION_ID NUMBER(9)
REGION_ID 列有一个外键约束,参照REGION 表,用下面的SQL语句修改DEPARTMENT table 表
UPDATE department
SET dept_id = 6546,
region_id = 9705
WHERE dept_id = 8940;
产生以下的错误信息:
ORA-02291: integrity constraint (SYS_C23) violated – parent key not found
错误可能会在那一行?
答案:可能在region_id = 9705这一行。
45.表 TEACHER 的结构如下:
Name Null? Type
————————————— ————————- —————————-
TEACHER_ID NOT NULL NUMBER(9)
NAME VARCHAR2(25)
SALARY NUMBER(7,2)
SUBJECT_ID NOT NULL NUMBER(3)
SUBJECT_DESCRIPTION VARCHAR2(2)
编写一个SQL命令,实现以下要求,给所有的science teachers 增加 8%的工资 The SUBJECT_ID for science teachers 的SUBJECT_ID 值是011.
答案:UPDATE teacher
SET salary = salary * 1.08
WHERE subject_id = 011;
46.ORACLE数据库有哪几种约束类型
答案:五种。是PRIMARY KEY,FOREIGN KEY,UNIQUE,CHECK,NOT NULL。
47.在建表时如果希望某列的值,在一定的范围内,应建什么样的约束?
答案:CHECK 约束。
48. RDBMS是下列哪一项的缩写:___
A Relational DataBase Management System(关系数据库管理系统)
B Relational DataBase Migration System(关系数据库移植系统)
C Relational Data Migration System(关系数据移植系统)
D Relational DataBase Manage System(关系数据库管理系统)
49. INSERT 是
A DML语句
B DDL语句
C DCL语句
D DTL语句
50. COUNT(*)函数返回____
A 包括空值和重复值得所有记录
B 不包含空值的纪录
C 带有重复值但无空值得记录
D 都不是
51.____什么操作符将两个查询的结果合并为单个结果
A 算术
B 比较
C 集合
D 以上都不是
52. .____什么操作符之返回两个查询的共有行
A INTERSECT
B UNION
C MINUS
D 没有
53.日期函数是
A 分组函数
B 单行函数
C 聚合函数
D 都不是
54.SELECT CHR(66) FROM DUAL的结果是_____
A Z
B S
C B
D 都不是
55.____函数返回一个值除以另一个值后的余数
A MOD
B ABS
C CEIL
D 以上都不是
56.____函数返回列表中第一个非空的表达式
A NVL
B NVL2
C COALESCE
D 以上都不是
57.____子句处理分组的结果
A WHERE
B HAVING
C SELECT
D 以上都不是
58.什么锁用于锁定表,仅允许其他用户查询表中的行,行不允许插入,更新,或删除行
A 共享
B 排他
C 共享更新
D 以上都不是
59.使用带有____子句的SELECT命令可以在表的一行或多行上放置排他锁
A FOR INSERT OF
B FOR UPDATE OF
C FOR REFRESH
D EXCLUSIVE
60. 对象关系模型支持:
A 面向对象的概念和关系的概念
B 仅支持关系的概念
C 仅面向对象对象的概念
D 以上都不是
61. TRUNCATE TABLE 是用于____:
A 删除表结构
B 仅删除记录
C删除结构和记录
D都不是
62.同义词用于下列情况
1 隐藏对象的名称和所有者
2 提供对对象的公共访问
A 两者都对
B 1错 2对
C 两者都错
D 1对 2错
63._____是oracle提供的一个对象,可以生成唯一的连续的整数
A 同义词
B 序列
C 视图
D 没有
64.可以使用____和____伪列来访问序列
A nextval和currentval
B nextval和previousval
C cache和nocache
D 以上都不对
65.下列有关视图的描述那一个是正确的
A 视图时已存储的查询
B 视图隐藏了数据的复杂性
C 视图就是表
D 视图不提供安全性
66._____是与表关联的可选结构
A 视图
B 索引
C 同义词
D 以上都不是
67.在下列哪种情况下,索引最有用
A 索引列被声明为not null
B 在where子句中使用了索引列
C 索引列包含许多不同的值
D 定义尽可能多的索引
68.检查下列创建的orders表的SQL语句
CREATE TABLE ORDERS(
SER_NO NUMBERUNIQUE,
ORDER_ID NUMBER,
ORDER_DATE DATE NOT NULL,
STATUS VARCHAR2(10) CHECK (STATUS IN (‘CREDIT’,’CASH’)),
PROD_ID NUMBER REFERENCES PRODUCTS(PRODUCT_ID),
ORD_TOTAL NUMBER,
PRIMARY KEY (ORDER_ID,ORDER_DATE)
当执行上述语句时,将自动为那些列创建索引
A SER_ID
B ORDER_ID
C STATUS
D PRID_ID
69 当在表加入一条数据时,如果其中一个字段未指定任何数据,此时该字段会存放什么值
A 0
B NULL
C ”(空字符)
D 不确定
-
======================================================================