您的位置:首页 > 数据库 > Oracle

Oracle 面试 笔试题

2012-03-09 11:11 323 查看
http://lihui315246.blog.163.com/blog/static/30844202007427913768/

选择题(20分,每小题2分):

1.数据库系统的核心是_B___。

A.数据库 B.数据库管理系统

C.数据模型 D.软件工具

2.SQL语言具有__B__的功能。

A.关系规范化、数据操纵、数据控制

B.数据定义、数据操纵、数据控制

C.数据定义、关系规范化、数据控制

D.数据定义、关系规范化、数据操纵

3.SQL语言的数据操纵语句包括 SELECT,INSERT,UPDATE和 DELETE,

最重要的,也是使用最频繁的语句是__A__。

A.SELECT B.INSERT C.UPDATE D.DELETE

4.在关系数据库设计中,设计关系模式是__C__的任务。

A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段

5.__C__是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。

A.程序 B.命令 C.事务 D.文件

6.在数据库中,产生数据不一致的根本原因是__D__。????

A.数据存储量太大

B.没有严格保护数据

C.未对数据进行完整性控制

D.数据冗余

7.下列SQL语句中,创建关系表的是__B__。

A.ALTER B.CREATE

C.UPDATE D.INSERT

8.数据库的__B__是为了保证由授权用户对数据库所做的修改不会影响数据一致性的损失。

A.安全性 B.完整性 C.并发控制 D.恢复

9.事务是数据库进行的基本工作单位。如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了数据库处于_____B___状态。

A.安全性 B.一致性 C.完整性 D.可靠性

10.对并发操作若不加以控制,可能会带来数据的___D_问题。

A.不安全 B.死锁 C.死机 D.不一致

二、填空题(12分,4小题)

1.数据冗余可能导致的问题有____________________和_____________________。

答案:①浪费存储空间及修改麻烦 ②潜在的数据不一致性

2.数据库在运行过程中可能产生的故障有____________、_______________、___________。

答案:①Transaction failure ②System crash ③Disk failure

3.视图是一个虚表,它是从_________中导出的表。在数据库中,只存放视图的________,不存放视图的_____________。

答案:一个或几个基本表、定义、视图对应的数据

4.关系操作的特点是____________操作。

答案:集合

三、简答题(共48分,每小题6分):

1、 如何创建表、修改表、删除表?

Create table 表名

Alter table 表名

Drop table 表名

2、 存储过程的优点是什么?

存储过程的优点:

1.提高性能

2.减轻网络拥塞

3.一致性较好

4.改善安全机制

3、 什么是触发器?触发器有哪几种?触发器有什么优点?

一个触发器是由T-SQL语句集组成的代码块,在响应某些动作时激活该语句集

有insert,delete,update触发器

它防止了对数据的不正确、未授权的和不一致的改变

4、 常见的几种约束有哪些?分别代表什么意思?如何使用?

主键约束,外键约束,检查约束,唯一约束,默认约束

约束:在Create table或alter table时加约束

(1)主键:PRIMARY KEY (主键字段) 保证了实体完整性,一个表只有一个主键,但一个主键可有包 含多个字段,主键字段不能为空

(2)唯一:UNIQUE (约束字段) 保证了实体完整性,一个表只有多个唯一约束,一个唯一约束可有包含多个字段

(3)外键:FOREIGN KEY (外键字段) REFERENCES 主键表(主键字段) 保证了引用完整性,一个表可以有多个外键

(4)检查:CHECK(检查表达式) 保证了域完整性, 一个表中可以有多个检查性约束

(5)默认值:DEFAULT (默认值的表达式或NULL) for 字段名 保证了域完整性,一个表可以有多个默认值约束,但是一个字段只有一个 默认值

5、什么是数据库的安全性?(5分)

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。

6、简要说明事务的原子性。(5分)

事务的所有操作必须完成,否则事务将被撤消。也就是说,事务是作为一个整体的单位处理,不可以被分割

7、事务中的提交和回滚是什么意思?(5分)

事务中的提交(COMMIT)是提交事务的所有操作。具体说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。

事务中的回滚(ROLLBACK)是数据库滚回到事务开始时的状态。具体地说就是,在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤消,使数据库回滚到事务开始时的状态。

8、什么是数据库的数据独立性?(5分)

数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。

逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图)之间的独立性。当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的变更或增加新的数据类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。

物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概念视图)和应用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。

数据独立性的好处是,数据的物理存储设备更新了,物理表示及存取方法改变了,但数据的逻辑模式可以不改变。数据的逻辑模式改变了,但用户的模式可以不改变,因此应用程序也可以不变。这将使程序维护容易,另外,对同一数据库的逻辑模式,可以建立不同的用户模式,从而提高数据共享性,使数据库系统有较好的可扩充性,给 DBA维护、改变数据库的物理存储提供了方便。

四、设计题(本大题共2小题,每小题10分,共20分)

1、假定一个部门的数据库包括以下的信息: (10分)

职工的信息:职工号、姓名、住址和所在部门。

部门的信息:部门所有职工、经理和销售的产品。

产品的信息:产品名、制造商、价格、型号及产品内部编号。

制造商的信息:制造商名称、地址、生产的产品名和价格。

完成如下设计:

设计该计算机管理系统的E-R图;

2、学生表:Student 学生表 (学号,姓名,性别,年龄,组织部门)

Course 课程表 (编号,课程名称)

Sc 选课表 (学号,课程编号,成绩)

表结构如下:

(1).写一个SQL语句,查询选修了’计算机原理’的学生学号和姓名

(2).写一个SQL语句,查询’周星驰’同学选修了的课程名字

(3).写一个SQL语句,查询选修了5门课程的学生学号和姓名

select sno,sname

from student

where sno in (

select sno

from sc

where cno = (

select cno

from course

where cname='计算机原理'

)

)

(2)

select cname

from course

where cno in (

select cno

from sc

where sno =

(

select sno

from student

where sname='周星驰'

)

)

(3)

select sno,sname

From student

Where sno in (

select sno

from sc

group by sno having count(sno)=5

)

1) which statement shows the maximum salary paid in each job category of each department?_______

a. select dept_id, job_cat,max(salary) from employees where salary > max(salary);

b. select dept_id, job_cat,max(salary) from employees group by dept_id,job_cat;

c. select dept_id, job_cat,max(salary) from employees;

d. select dept_id, job_cat,max(salary) from employees group by dept_id;

e. select dept_id, job_cat,max(salary) from employees group by dept_id,job_cat,salary;

2)description of the students table:

sid_id number

start_date date

end_date date

which two function are valid on the start_date column?_________。

a. sum(start_date)

b. avg(start_date)

c. count(start_date)

d. avg(start_date,end_date)

e. min(start_date)

f. maximum(start_date)

3)for which two constraints does the oracle server implicitly create a unique index?______。

a. not null

b. primary

c. foreign key

d. check

e. unique

4)in a select statement that includes a where clause,where is the group by clause placed in the select statement?______。

a. immediately after the select clause

b. before the where clause

c. before the from clause

d. after the order by clause

e. after the where clause

5)in a select statement that includes a where clause,where is the order by clause placed in the select statement?______.

a.immediately after the select clause

b.before the where clause

c.after all clause

d.after the where clause

e.before the from clause

6)evaluate there two sql statements______.

select last_name,salary from employees order by salary;

select last_name,salary from employees order by 2 asc;

a.the same result b.different result c.the second statement returns a syntax error

7) you would like to display the system date in the format“20051110 14:44:17”。which select statement should you use?______。

a. select to_date(sydate,’yearmmdd hh:mm:ss’)from dual;

b. select to_char(sydate,’yearmonthday hh:mi:ss’)from dual;

c. select to_date(sydate,’yyyymmdd hh24:mi:ss’)from dual;

d. select to_char(sydate,’yyyymmdd hh24:mi:ss’)from dual;

e. select to_char(sydate,’yy-mm-dd hh24:mi:ss’)from dual;

8)which select statement will the result ‘ello world’from the string‘hello world’?______.

a. select substr(‘hello world’,1)from dual;

b. select substr(trim(‘hello world’,1,1))from dual;

c. select lower(substr(‘hello world’,1))from dual;

d. select lower(trim(‘h’from‘hello world’))from dual;

9)which are dml statements(choose all that apply)______.

a.commit b.merge c.update d.delete e.creat f.drop

10)select 语句中用来连接字符串的符号是______.

a. “+” b. “&” c.“||” d.“|”

问答题: 什么是聚集索引,什么是非聚集索引,什么又是主键?

1 B. select dept_id, job_cat,max(salary) from employees group by dept_id,job_cat;

2 C.count(start_date) ,E.min(start_date)

3 B. primary ,E. unique

4 E. after the where clause

5 C.after all clause

6 A.the same result

7 D. select to_char(sydate,’yyyymmdd hh24:mi:ss’)from dual;

8 D. select lower(trim(‘H’from‘Hello World’))from dual;

9 不详,猜测B,( E.creat F.drop 都是DDL)

10 C.“||”

问答题: 什么是聚集索引,什么是非聚集索引,什么又是主键?

表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键.

聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,

因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。

非聚集索引与课本中的索引类似。数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。

索引中的项目按索引键值的顺序存储,而表中的信息按另一种顺序存储(这可以由聚集索引规定)。

如果在表中未创建聚集索引,则无法保证这些行具有任何特定的顺序。

这里的回答并不是十分全面,这些问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽的答案,只需要通过你的解答使面试考官了解你对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产品的目录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: