oracle数据库面试题目汇总

oracle数据库面试题目汇总
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()小于等于该值的最大整数trunc(value,precision)保留precision个小数截取value round(value,precision)保留precision个小数对value进行四舍五入sign()根据值为正负零返回1,-1,0 mod()取模操作power(value,exponent)value的exponent次幂sqrt()求平方根

1.初级

4、关系数据库系统与文件数据库系统的区别在那里?关系数据库系统一般适用

那些方面?

答案:

关系数据库系统文件系统的区别在于:

首先,关系性数据库的整体数据是结构化的,采用关系数据模型来描述,

这是它与文件系统的根本区别。(数据模型包括:数据结构,数据操作以及完整性约束条件)

其次,关系数据库系统的共享性高,冗余低可以面向整个系统,而文件系统则具有应用范围的局限性,不易扩展。

第三,关系数据库系统采用两级映射机制保证了数据的高独立性,从而使

得程序的编写和数据都存在很高的独立性。这方面是文件系统无法达到

的,它只能针对于某一个具体的应用。(两级映射:保证逻辑独立性的外模式/模式映射和保证物理独立性的内模式/模式映射。外模式:用户模式,是数据库用户的局部数据的逻辑结构特征的描述。模式:数据库全体数据的逻辑结构特征的描述。内模式:也就是数据最终的物理存储结构的描

述。)

第四,就是关系性数据库系统由统一的DBMS进行管理,从而为数据提供了如安全性保护,并发控制,完整性检查和数据库恢复服务。

5、触发器的概念,存储过程的概念.

答案:

触发器:是存储在数据库中的过程,当表被修改(增、删、改)时它隐式地被激发。

存储过程:是数据库语言SQL的集合,同样也存储在数据库中,但是他是由其他应用程序来启动运行或者也可以直接运行。

6、基本SQL语句有哪些.

答案:

select、insert、update、delete、create、drop、truncate

1.中级

8、什么是事务一致性 ? 选择熟悉的数据库实现一个事务处理,如信用卡提款.

事务的一致性:是事务原子性的体现,事务所对应的数据库操作要么成功要么失败没有第三种情况。事务不管是提交成功与否都不能影响数据库数据的一致性状态。

事务:用户定义的一个数据库操作序列,这些操作要么全部成功完成要么全部不做,是一个不可分割的整体。定义事务的SQL语句有:BEGIN TRANSACTION,COMMIT,ROLLBACK。

事务的原子性:就是事务所包含的数据库操作要么都做,要么都不做.

事务的隔离性:事务对数据的操作不能够受到其他事务的影响。

事务的持续性:也就是说事务对数据的影响是永久的。

对'信用卡提款'这一事务而言就是要保证'提取到现金'和'卡帐号余额'的修改要同时成功或失败.

BEGIN TRANSACTION

读取A的帐户余额BALANCE;

BALANCE=BALANCE-AMOUNT转帐金额;

IF(BALANCE<0) THEN

ROLLBACK;

ELSE

BEGIN

将A的新余额写回;

读取B的帐户余额BALANCEB;

BALANCEB=BALANCEB+AMOUNT转帐金额;

将B的新余额写回;

COMMIT;

END IF;

END;

9、实际编写和调试存储过程或触发器.

10、实现索引的方式? 索引的原理? 索引的代价? 索引的类型?

答案:实现索引的方式有两种:针对一张表的某些字段创建具体的索引,如对oracle: create index 索引名称 on 表名(字段名);在创建表时为字段建立主键约束或者唯一约束,系统将自动为其建立索引。

索引的原理:根据建立索引的字段建立索引表,存放字段值以及对应记录的物理地址,从而在搜索的时候根据字段值搜索索引表的到物理地址直接访问记录。

引入索引虽然提高了查询速度,但本身占用一定的系统存储容量和系统处理时间,需要根据实际情况进行具体的分析.

索引的类型有:B树索引,位图索引,函数索引等。

11、view 的概念 ? 何时应用?

答案: view 是对表级数据的多角度的透视,适用于对查询安全性、灵活性有一定要求的环境

12、sql语句例外处理?举例说明?

答案:当sql 语句在执行过程中出现意外时,如查询时,未查询到结果;更改时无记录等情况的应采取的措施.

以oracle为例:测试其对exception的理解.如

select 字段 into 变量 from table ;

若查询出多条记录,应增加exception 例外处理.

Oracle处理异常有三种:

1.预定义的例外处理,EXCEPTION WHEN exception_name THEN

2.EXCEPTION_INIT产生例外

首先要declare 声明一个例外名;然后将例外名和错误代码绑定

pragma exception_init(错误名,错误代码);最后在EXCEPTION 处

when 错误名then

3.用户自定义例外,不用EXCEPTION,当判断条件成熟时用raise_application_error(-20000~~~-20999,提示信息)。

13、判断下列论述是否正确。 (1) 一个事务中的某条SQL命令提交时,其它SQL

命令可以不提交。 (2) 在一个关系表中,主键可唯一标识一行记录。 (3) 一个关系表中的外键必定是另一表中的主键。 (4) 回滚可以在事务失败时,回到操作事务前的数据状态。

答案: (1)错误 (2)正确 (3)正确 (4)正确

14、以下哪些手段可保证数据库中数据的完整性和一致性: (1)自定义数据类型 (2)触发器 (3)主键和外键 (4)事务

答案: (1)(2)(3)(4) (为什么有1)

15、使用存储过程访问数据库比直接用SQL语句访问有哪些优点?

答案:存储过程是预编译过的,执行时勿须编译,执行速度更快;存储过程封装了一批SQL语句,便于维护数据的完整性与一致性;可以实现代码的复用。

1.高级

16、对于精通的数据库系统描述其体系结构,主要包括存储机制、回滚机制、运

行机制等.

答案:对oracle 系统而言,描述sga的结构; 后台pmon,ckpt、lgwr,smon等进程的功能;表空间的分配策略; 回滚段的结构

oracle的sga(系统全局区)包括的主要区有:数据库缓存区,重做日志缓存区,共享池(数据字典缓存和库缓存),大池等。数据库缓存区用来存放最近使用过的数据块主要和后台进程中的数据库写进程(DBWR)以及数据文件发生关系;重做日志缓存区用于存放操作数据库数据所产生的重做日志信息,与之合作的有重做日志写进程(LGWR)和重做日志文件;共享池主要缓存SQL/PLSQL,资源锁,控制信息等,其中的库缓存主要缓存被解析执行过的SQL/PLSQL库缓存可分为共享

SQL和私有SQL两个区,共享SQL用于存放SQL语句的语法分析结果和执行计划,私有SQL则用来存放与具体SQL语句执行有关的绑定变量,会话参数等。ORACLE实例的另外一个重要部分就是其后台进程,主要的后台进程有:数据库写进程(DBWR),重做日志写进程(LGWR),系统监视器(SMON),进程监视器(PMON),检查点进程(CKPT)。DBWR主要是对数据库缓存区中的脏冷数据进行写入数据文件操作;LGWR主要是将对数据库数据操作所产生的重做日志信息写入到重做日志文件中;SMON完成由于非正常关闭数据库的情况下重起数据库时对数据库的恢复;PMON用来恢复失败的用户进程和服务进程,并释放其所占的系统资源;CKPT可以表示数据库在此出处于完整状态。

逻辑存储结构:数据块BLOCK,区EXTENT,段SEGMENT,表空间TABLESPACE

物理存储空间:表空间,数据文件,控制文件,日志文件,数据字典

软件体系结构就是上边对SGA和后台进程的描述。

17、对于精通的数据库系统描述其数据一致性的保证机制,包括lock,事务一致

性等.

答案:在并发环境下,采用多种机制保持其数据的一致性,如oracle系统提供的事务级的一致性、行级锁、表级锁等等.

18、对精通的数据库系统描述其联机备份机制、恢复机制,考核其对日志的理解.

答案:描述相关数据库的实时联机备份策略,如数据库系统在运行中通过何种方式保证其数据的实时备份, 出现问题时,应采取何种办法从联机备份进行恢复.

对对oracle而言,其archive online 备份方式应如何设臵、修改什么参

数、如何安排备份空间等等.

19、精通的数据库系统描述性能优化方法,包括优化的策略、参数、验证方法等.

答案:

20、Truncate; 与 delete;的区别?(这道题可以衍生出很多的问题比如:想快速的清除一个很大的表中的数据应该用设么操作?答案是:应该用truncate。

还有,在对两个相同纪录数的分别表使用了truncate,和delete commit;后对这两个表进行count(*)统计记录数操作,那个表速度会快些?答案是:使用了truncate的会快些。)

21、写一个‘游标’并使用它。(这道题应该注意的是:在使用游标后一定要记得关闭游标)。

Declare

Cursor cursor_name is

Select * from tablename;

Begin

Open cursor_name;

Loop

Fetch cursor_name into bianliang;

Exit when cursor_name%notfound;

Sql……..

End loop;

Close cursor_name;

End;

22、在创建表的时候会设臵

pctfree 10

pctused 40

而创建表的索引的时候却没有

pctused 40

这是为什么?

(这道题的主要思想是索引不能在pctused 40上得到什么好处)

23、使用过的最大的表有多少行纪录?(这道题不是看应试者的技术过不过关,而是考察应试者是否有大型数据库的管理操作经验)

不要对表的索引列进行函数操作,因为这样系统就不能使用索引,使查询变得很慢,但是在ora8i以后就已经开始支持函数的索引,弥补了这个不足。

24、ORACLE数据库启动与关闭的步骤

启动:启动实例----加载数据库数据-----打开数据库

关闭:关闭数据库----卸载数据库数据----关闭实例

25、Delete与truncate的区别

delete一般用于删除少量记录的操作,而且它是要使用回滚段并且要进行显示的提交事务。而truncate则使用于大量删除数据,而且隐式提交事务,其速度要比使用delete快的多。

26、DDL和DML分别代表什么??

DDL表示数据定义语言,在ORACLE中主要包括CREATE,ALTER,DROP

DML表示数据操作语言,主要的DML有SELECT,INSERT,UPDATE,DELETE

28、Javascript中动态效果时调用的函数。

29、数据库中有若干条相同的记录,删除到只剩下一条记录。如何做,请用SQL 语句通过ROW_ID来写出执行过程。

Delete table_name where ziduan=’’ and rowed<(select max(rowed) from table_name where ziduan=’’);

30、oracle数据库表存放到磁盘什么地方(什么物理空间上——大概意思)?Oracle数据库表存放在数据文件上。

31、Oracle使用什么语句给用户分配权限?

GRANT TO 语句

32、你在项目现场,用户要求你向正在运行的表中添加一个字段,你该怎么做?第一种方法:关闭数据库,然后使用受限模式打开,由sys/sysdba来进行

第二种方法:不关闭数据库,将数据库臵于静默状态在SYS/SYSDBA模式下用ALTER SYSTEM QUISCE RESTRICTED,这种状态下只有SYS/SYSDBA才可以对数据库进行操作,修改完毕之后再退出静默状态ALTER SYSTEM UNQUISCE

在这里复习到了数据库的两种特殊状态:静默状态(QUISCE)和挂起状态

静默状态就是只有特殊权限的SYS/SYSDBA才可以对数据库进行操作,使用ALTER SYSTEM QUISCE RESTRICTED以后系统将等候活动着的会话主动结束,同时阻止建立新的会话,系统挂起所有的SQL语句,等恢复以后再重新激活会话执行挂起的SQL。

挂起状态就是系统将数据库所有对物理文件(数据文件,控制文件,日志文件)的I/O操作都暂停,但是并不禁止非DBA用户对数据库进行操作。这种状态主要用于进行数据库备份。

33、Oracle中回滚的概念?回滚段有什么作用。

回滚就是在事务提交之前将数据库数据恢复到事务修改之前数据库数据状态。回滚段就是为回滚提供依据,记录的是事务操作数据库之前的数据或者对应于以前操作的操作,这个内容要根据以前的操作而定。比如说以前事务操作如果是UPDATE那么回滚段则存储UPDATE以前的数据,如果事务是DELETE操作那么存储的则是与之相对应的INSERT操作语句,相反如果事务操作是INSERT那么记录相应的则是DELETE操作了。

34、Oracle的8I和9I有什么区别

35、一张表有10万条记录,如何删除其中的任意20条记录?请用SQL语句进行操作

36、客户端如何访问服务器端的oracle?如果客户端无法访问服务器端的oralce,可能会是什么原因?

客户端通过网络或者进程方式以合法的用户身份来取得和服务器端ORACLE的

连接。如果客户端无法访问服务器端ORACLE可能出现的原因是:用户无权访问;服务器端数据库并没有打开(启动数据库的第三步没有完成);如果服务器是在共享模式下的则有可能没有对应于该客户所使用的通信协议的调度进程Dnnn。

37、oracle中执行语句错误时去哪里查找错误信息?

Select * from USER_ERRORS

38、select语句需要提交吗?insert和update语句呢?

39、在执行insert语句并提交后,这些提交的数据存储到什么地方??

被存储到数据文件中

40、oracle中有哪些类型的文件?

数据文件,控制文件,日志文件和数据字典

41、介绍一下oracle的体系结构?

逻辑体系结构:块,区,段,表空间

物理体系结构:表空间,三大文件

软件体系结构:SGA,后台进程

42、谈谈对oracle的row_ id是否理解?请简述?

ORACLE的row_id是一个伪列,其个是为18个字节可将这18个字节用6363来划分,分别表示段编号,数据文件编号,数据块编号和记录编号。

Row_id表示的是一个记录的物理存储地址。

43、oracle中如何删除用户?

Oracle中使用DROP USER来删除用户,如果使用DROP USER CASCADE那么用户的对象也同时被删除掉。为了达到删除用户的效果而又不影响对用户下的对象的使用可以使用alter user username account lock将用户锁定。

44、客户端对服务器端的oralce操作的流程是什么?

专用模式下:用户通过应用程序进程试图去得到一个与ORACLE数据库服务器的连接→客户端通过网络传递连接请求,ORACLE服务器则使用监听进程监听用户请求,并且来验证用户身份,通过验证则为用户分配一专用服务进程→用户提交SQL语句→专用服务进程则首先在SGA区的共享池中检查是否有与该SQL 语句相似的已经被解析执行并且缓存的SQL语句,如果有则采用它的解析结果

和执行计划执行SQL语句,如果没有则对SQL语句进行语法解析生成执行计划→通过解析则执行操作获取数据→将执行结果返回给客户。

共享模式下:与专用模式不同在于当监听程序验证用户的合法性以后并不为它分配一个专用的服务进程,而是将该请求与响应的调度进程相联系起来,并将起放入到一个请求队列中,最终由响应的Dnnn来从调度队列中获取一个请求并为之分配一个空闲的服务进程,接下来有服务进程对该请求进行服务操作和专用方式下相同,处理完成之后由服务进程先将结果放入一个返回队列最后再由调度进程(Dnnn)将返回队列中的结果返回给对应的用户。

45、exits和in在ORALCE数据库中那个执行效率更高?

Exits执行效率比in高。因为:

46、如何判断游标已经到最后一行?

Cursor_name%notfound

47、聚簇索引和普通索引在不同的SQL语句中哪个效率更高??(笔试题,

原题回忆不起来,主题就是聚簇索引和普通索引的区别)

概念类:

聚合函数? Session的定义和用法? Oracle的存储过程?什么是构造函数?

48、简述ORACLE中SGA的组成部分。

答:系统全局区包括:共享池、重做日志缓存区、数据高速缓存区,大池,JAVA 池。

49、简述ORACLE的启动和关闭各有多少步骤?

启动:启动实例、装载数据库数据、打开数据库。

关闭:关闭数据库、卸载数据库数据、关闭实例。

50、在Oracle表空间的分类和作用,如排序时数据将放在什么表空间?

作用是为了突破存储容量的限制,是一个逻辑概念。排序数据放在临时表空间。

51、执行COMMIT命令时,数据库将会发生什么改变,ROLLBACK呢?

答:commit 提交时首先是与事务对应的重做日志信息将被写入到数据库物理文

件中的重做日志文件中,至于是否会真正将事务操作的内容反映到数据文件还好看DBWR是否启动了。在完成数据库的插入,删除和修改操作时,只有当事务提交到数据库才算完成,有提交前只有操作数据库的本人才能看到,别人只有在最后提交完成才可以看到。

ROLLBACK回滚当前尚未提交的事务,使数据库恢复到事务操作前的状态。

52、用命令创建用户,并为用户授权。

Create user user_name

identified by password /

identified externally/

identified blobally as ‘CN=user’

default tablespace tablespace_name

temporary tablespace tablespace_name;

grant role/privilege to user_name;

53、写一个存储过程,使employee(name,age,emp_no,salary)表中的salary

值在0-1000之间的员工的工资上涨20%,(提示:要求用到游标)

Cteate or replace procedure emp_sal

V_name https://www.360docs.net/doc/4011449132.html,%type;

V_emp_no employee.emp_no%type;

V_salary employee.salary%type;

Cursor cursor_sal is

Select name,emp_no,salary from employee where salary between 0 and 1000;

Begin

Open cursor_sal;

Loop

Fetch cursor_sal into v_name,v_emp_no,v_salary;

Exit when cursor_sal%notfound;

Update employee set salary=salary*1.2 where name=v_name and

emp_no=v_emp_no;

End loop;

Close cursor_sal;

Commit;

End;

54、ORACLE数据库都有哪些类型的文件?

数据文件,控制文件,日志文件,参数文件

55、用命令创建表空间、用户,并为用户授权、收回权限。

Create tablespace tabllespacename

Datafile ‘f:\orcl\user001.dbf size 20m

Default storage(

Initial 512k

Next 512k

minextents 2

pctincrease 50%

maxExitnts 2048)

minimum extent 512k

logging

online

permanent

extent management dictionary;

回收权限: revoke privilege from user;

create tablespace tablespace_name

datafile ‘’

default storage(

initial xxxkb

next yykb

minextents 2

pctincrease nnnn

maxextents mmm)

logging

online

extent management dictionary/local[autoallocate/uniform size xxxmb];

create user user_name

identified by passwore/

identified externally/

identified globally as ‘CN=user’

default tablespace tablespace_name

temporary tablespace tablespace_name

[account lock /unlock]

grant connect to user_name;

grant create table to suer_name;

grant update on table_name to user_name;

revoke create table from user_name;

revoke update on table_name from user_name;

56、在Oracle中如何更改用户名?

57、如何在Oracle中查询某个用户下所有已建的表?

答:select * from cat;

57、执行TRUNCATE命令后,存储空间是否还存在,是否可被其他的表占用?执行TRUNCATE之后,为表分配的区空间将被回收HWM将回退,如果在使用TRUNCATE的时候没有指定REUSE STORAGE那么执行操作后仅仅留下由MINEXTENTS所指定的区否则表的所有空间将被回收用于再分配。

59、何在Oracle中查看当前用户,通常有哪些方式?(提示:show user和select * from user_users)show user;/select username from user_users;

60、出在Oracle中,创建表空间的语法结构,以及所含参数说明。

Create tablespace tablespacename

Datafile ‘’

Logging/nologging

Default storage(initial kb

Next kb

Minextents x

Maxextents y

Pctincrease z

)

online/not online

extent management dictionary/local[autoallocate/uniform size kb]; 61、如何判断游标是否到了末尾?(提示:用%notfound)

cursor_name%notfound

62、在Oracle中,如何查看当前用户下的所有表空间?

Select tablespace_name from user_tablespaces;

63、在Oracle中,你所创建的表空间信息放在哪里?

存放在数据字典中,数据字典内容对应于系统表空间SYSTEM表空间。

64、ORACLE中的控制文件什么时候读取?

ORACLE服务器启动时,先启动实例然后再读取数据库的各个文件当然也包括控制文件。也就是说在数据库服务器启动的第二步时读取。

65、Oracle的表格信息存储在哪个地方?

SYSTEM表空间的数据字典文件中。

66、如何根据字典创建一个表空间,并说明参数?

66、ORACLE中当一个用户正在操作一个执行过程,管理员此时取消了他的权

限,会发生什么事情?

68、谈谈你对角色的理解,常用的角色有哪些?

角色就是一组权限的数据库实体,它不属于任何模式或用户但是可以被授予任何用户。常用的角色有CONNECT,DBA,RESOURCE,SELECT_CATALOG_ROLE(查询所有表视图权),DELETE_CATALOG_ROLE(删除权限)等。

角色的创建和授权:和创建用户为用户授权差不多。Create role role_name

identified …

grant 权限to role_name。

69、简述Oracle的归档与不归档工作模式,分别说明。

Oracle归档模式是指在创建数据库时指定了ARCHIVELOG参数,这种模式下,当重做日志文件写满的时候会将该重做日志文件的内容保存到指定的位臵(由初始化文件中的参数ARCHIVE_LOG_DEST_n来决定)。并不是数据库在归档模式下工作的时候就可以自动完成归档操作,在归档模式下可以有两种归档方式:自动归档(在初始化文件中的参数ARCHIVE_LOG_START被设臵为TRUE)和手动归档。如果归档模式下没有启动自动归档的话,而且又没有实行手动归档那么当LGWR进程将重做日志信息写入已经写满的重做日志文件时数据库将会被挂起直到进行了归档。可见归档是对重做日志文件信息的一种保护措施。

Oracle非归档模式下当重做日志文件写满以后若是有LGWR进行重做日志信息的写入操作时,以前保存在重做日志文件中的重做日志信息就会被覆盖掉。

70、Oracle索引分为哪几类,说出唯一索引和位图索引的概念。

Oracle索引有B树索引,位图索引,函数索引,簇索引等。

唯一索引也是B树索引的一种,它要求被索引的字段值不可以重复。在创建的时候使用B树算法创建。

位图索引并不是采用象唯一索引那样存储(索引字段值,记录ROWID)来创建索引段的,而是为每一个唯一的字段值创建一个位图,位图中使用位元来对应一个记录的ROWID。位元到ROWID是通过映射的到的。

71、ORACLE的基本数据类型有哪些?

Char()存储定长字符,定义的时候可以不为他指定长度但是如若往里插入值则会出错;varchar2()存储变长字符定义的时候必须指定长度,date存储时间日期;Number()数字类型,包括整型,浮点型等;clob()大容量字符串;blob()大二进制对象

72、SQL中,执行四舍五入的是哪个函数?

Round(value,保留的小数位数)与只对应的还有一个特别相似的函数trunc (value,保留的小数位数)它的作用是根据要保留的小数位数来截取原数。73、oracle数据库表存放到磁盘什么地方?数据文件

ORACLE数据库的表存放在物理文件中的数据文件中。

74、当执行insert语句并提交后,这些提交的数据存储到什么地方??

存储到了数据库的数据文件中。

75、Exits和in在ORALCE数据库中那个执行效率更高?

EXITS执行效率要比使用IN要快。

76、ORACLE自己提供的函数,想知道具体位臵,如何操作?

77、数据库的几种物理文件?

1)数据文件 2)控制文件 3)日志文件

78、控制文件都含有哪些信息?

控制文件存放有实例信息(实例名称创建时间等),数据文件和日志文件信息,还有系统运行时记录的系统变更码(SCN),检查点信息和归档的当前状态信息等。数据库在加载数据库的时候首先要读取控制文件获得和数据库有关的物理结构信息之后才能够正确加载数据文件和日志文件并打开数据库。

79、Decode函数的用法?

DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value 等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。

2.如何用decode进行大于小于的比较?

利用sign()函数和DECODE和在一起用

select decode(sign(变量1-变量2),-1,变量1,变量2) from dual;

decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)

该函数的含义如下:

IF 条件=值1 THEN

RETURN(翻译值1)

ELSIF 条件=值2 THEN

RETURN(翻译值2)

......

ELSIF 条件=值n THEN

RETURN(翻译值n)

ELSE

RETURN(缺省值)

END IF

〃使用方法:

1、比较大小

select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值

sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1

例如:

变量1=10,变量2=20

则sign(变量1-变量2)返回-1,decode解码结果为?变量1?,达到了取较小值的目的。

2、表、视图结构转化

现有一个商品销售表sale,表结构为:

month char(6) --月份

sell number(10,2) --月销售金额

现有数据为:

200001 1000

200002 1100

200003 1200

200004 1300

200005 1400

200006 1500

200007 1600

200101 1100

200202 1200

200301 1300

想要转化为以下结构的数据:

year char(4) --年份

month1 number(10,2) --1月销售金额

month2 number(10,2) --2月销售金额

month3 number(10,2) --3月销售金额

month4 number(10,2) --4月销售金额

month5 number(10,2) --5月销售金额

month6 number(10,2) --6月销售金额

month7 number(10,2) --7月销售金额

month8 number(10,2) --8月销售金额

month9 number(10,2) --9月销售金额

month10 number(10,2) --10月销售金额

month11 number(10,2) --11月销售金额

month12 number(10,2) --12月销售金额

结构转化的SQL语句为:

create or replace view

v_sale(year,month1,month2,month3,month4,month5,month6,month7,month 8,month9,month10,month11,month12)

as

select

substrb(month,1,4),

华为面试题(附答案)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精选面试题(附答案及分析)

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面试题库_3

Oracle面试题库 END LOOP;7. 当在一个PLSQL块中通过查询得到一个值,但是没有任何值返回时,会产生异常吗?如果产生,是什么异常?A 不会有异常,只不过没有结果而已B 有异常,异常为No_data_foundC 有异常,异常为Value_erroD 编译都不通过8. 在PLSQL块中处理异常的语句是 A EXCEPTIONIF EXCEPTION_NAME THENDBMS_OUTPUT.PUT_LINE();END;B EXCEPTIONWHEN EXCEPTION_NAME THENDBMS_OUTPUT.PUT_LINE();END EXCEPTION ;C WHEN EXCEPTION_NAME THENDBMS_OUTPUT.PUT_LINE();D BEGINNULL;EXCEPTIONWHEN EXCEPTION_NAME THENDBMS_OUTPUT.PUT_LINE();END ;9. 当用户在PLSQL块中,像抛出自定义异常或者是系统异常时,所使用的关键字是 A THROWB RAISEC RAISE_APPLICATION_ERRORD EXCEPTION10. 在自定义异常中,用户可用的错误号范围在A 20000 ~ 29999B -20000 ~ -20999C 1~65535D 没有限制11. 阅读代码DECLAREBEGINDBMS_OUTPUT.PUT_LINE(‘外不快’);DECLAREMYEXCE EXCEPTION;BEGINRAISE MYEXCE;END;EXCEPTIONWHEN MYEXCE THENDBMS_OUTPUT.PUT_LINE(‘异常捕获’);END;出现的结果是

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面试题集锦

本文是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面试题70问及答案

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_METADA TA.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 - 数据库装载

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面试题及答案_经典

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+面试及答案-经典

一、基础概念 1.列举几种表连接方式 Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全) Or hash join/merge join/nest loop(cluster join)/index join ??ORACLE 8i,9i 表连接方法。 一般的相等连接: select * from a, b where a.id = b.id; 这个就属于内连接。 对于外连接: Oracle中可以使用“(+) ”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN LEFT OUTER JOIN:左外关联 SELECT https://www.360docs.net/doc/4011449132.html,st_name, e.department_id, d.department_name FROM employees e LEFT OUTER JOIN departments d ON (e.department_id = d.department_id); 等价于 SELECT https://www.360docs.net/doc/4011449132.html,st_name, e.department_id, d.department_name FROM employees e, departments d WHERE e.department_id=d.department_id(+) 结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id 的员工记录。 RIGHT OUTER JOIN:右外关联 SELECT https://www.360docs.net/doc/4011449132.html,st_name, e.department_id, d.department_name FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id); 等价于 SELECT https://www.360docs.net/doc/4011449132.html,st_name, e.department_id, d.department_name FROM employees e, departments d WHERE e.department_id(+)=d.department_id 结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。 FULL OUTER JOIN:全外关联 SELECT https://www.360docs.net/doc/4011449132.html,st_name, e.department_id, d.department_name FROM employees e FULL OUTER JOIN departments d ON (e.department_id = d.department_id);

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. 给出两个检查表结构的方法

解答:「DESCRIBE命令 2.DBMS_METADATA.GET_EtoL 6. 怎样查看数据库引擎的报错 解答:alert log.

Oracle面试题集锦

Oracle 面试题集锦 一、经典面试题 1.OracleDBA面试题之一解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。 冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将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命令 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中的两种表及它们分别含有的数据

Oracle-笔试题目带标准答案

1.( )程序包用于读写操作系统文本文件。(选一项) A、Dbms_output B、Dbms_lob C、Dbms_random D、Utl_file 2.( )触发器允许触发操作的语句访问行的列值。(选一项) A、行级 B、语句级 C、模式 D、数据库级 3.( )是oracle在启动期间用来标识物理文件和数据文件的二进制文件。(选一项) A、控制文件 B、参数文件 C、数据文件 D、可执行文件 4.CREATE TABLE 语句用来创建(选一项) A、表 B、视图 C、用户 D、函数 5.imp命令的哪个参数用于确定是否要倒入整个导出文件。(选一项) A、constranints B、tables C、full D、file 6.ORACLE表达式NVL(phone,'0000-0000')的含义是(选一项) A、当phone为字符串0000-0000时显示空值 B、当phone为空值时显示0000-0000 C、判断phone和字符串0000-0000是否相等 D、将phone的全部内容替换为0000-0000 7.ORACLE交集运算符是(选一项) A、intersect B、union C、set D、minus 8.ORACLE使用哪个系统参数设置日期的格式(选一项) A、nls_language

B、nls_date C、nls_time_zone D、nls_date_format 9.Oracle数据库中,通过()访问能够以最快的方式访问表中的一行(选一项) A、主键 B、Rowid C、唯一索引 D、整表扫描 10.Oracle数据库中,下面()可以作为有效的列名。(选一项) A、Column B、123_NUM C、NUM_#123 D、#NUM123 11.Oracle数据库中,以下()命令可以删除整个表中的数据,并且无法回滚(选一项) A、drop B、delete C、truncate D、cascade 12.Oracle中, ()函数将char或varchar数据类型转换为date数据类型。(选一项) A、date B、to_date C、todate D、ctodate 13.ORACLE中,执行语句:SELECTaddress1||','||address2||','||address2 "Address" FROMemploy;将会返回()列(选一项) A、0 B、1 C、2 D、3 14.Oralce数据库中,以下()函数可以针对任意数据类型进行操作。(选一项) A、TO_CHAR B、LOWER C、MAX D、CEIL 15.partition by list(msn_id)子句的含义是(选一项) A、按msn_id列进行范围分区 B、按msn_id列进行列表分区

oracle企业面试题集锦

oracle企业面试题集锦 宏观上: 1.最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在 windows 平台上,由于 windows 平台的稳定性和安全性影响了 sql server的稳定性和安全性 2.oracle使用的脚本语言为 PL-SQL ,而sql server使用的脚本为 T-SQL 微观上:从数据类型,数据库的结构等等回答 2.如何使用Oracle的游标 1.oracle中的游标分为显示游标和隐式游标 2.显示游标是用cursor is命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理;隐式游标是在执行插入 (insert)、删除(delete)、修改(update)和返回单条记录的查询(select)语句时由 PL/SQL 自动定义的。 3.显式游标的操作:打开游标、操作游标、关闭游标;PL/SQL 隐式地打开SQL游标,并在它内部处理SQL语句,然后关闭它 3.Oracle 中 function 和 procedure 的区别 1.可以理解函数是存储过程的一种 2.函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值 3.两者都可以通过out参数返回值,如果需要返回多个参数则建议使

用存储过程 4.在sql数据操纵语句中只能调用函数而不能调用存储过程 4.Oracle的导入导出有几种方式,有何区别 1.使用 oracle 工具 exp/imp 2.使用plsql相关工具 方法1.导入/导出的是二进制的数据,2.plsql导入/导出的是 sql语句的文本文件 5.Oracle中有哪几种文件 数据文件(一般后缀为.dbf或者.ora),日志文件(后缀名.log),控制文件(后缀名为.ctl) 6.怎样优化Oracle数据库,有几种方式 个人理解,数据库性能最关键的因素在于IO,因为操作内存是 快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个人理解应该分为物理的和逻辑的优化,物理的是指oracle产品本身的一些优化,逻辑优化是指应用程序级别的优化物理优化的一些原则: 1.Oracle的运行环境(网络,硬件等) 2.使用合适的优化器 3.合理配置oracle实例参数 4.建立合适的索引(减少IO) 5.将索引数据和表数据分开在不同的表空间上(降低 10冲突) 6.建立表分区,将数据分别存储在不同的分区上(以空间换取时间,

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

Oracle数据库的面试题目及答案 基础题目: 1. 比较truncate和命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment . 而Delete是DML操作, 需要rollback segment 且花费较长时间. 【相同点 truncate和不带where子句的, 以及drop都会删除表内的数据 不同点: 1. truncate和只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,

但是变为invalid状态. 2.语句是dml,这个操作会放到rollback segement中,事务提交 之后才生效;如果有相应的trigger,执行的时候将被触发. truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger. 3.语句不影响表所占用的extent, 高水线(high watermark)保持 原位置不动 显然drop语句将表所占用的空间全部释放 truncate 语句缺省情况下见空间释放到 minextents个 extent, 除非使用reuse storage; truncate会将高水线复位(回到最开始). 4.速度,一般来说: drop>; truncate >; 5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及

使用上,想删除部分数据行用,注意带上where子句. 回滚段要足够大. 想删除表,当然用drop 想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用. 如果是表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据 2.Oracle中,需要在查询语句中把空值(NULL)输出为0,如何处理? 答案:nvl(字段,0). nvl( ) 函数 从两个表达式返回一个非 null 值。 语法

华为面试题(附答案)Oracle-DBA、JAVA架构师必看

DBA数据库管理员JAVA程序员架构师必看 一、技术问题部分(数据库部分) 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 max size 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的区别?

Oracle笔试题及答案

一、选择题(每题1分) 1.Oracle发出下列select语句: SQL> select e.empno, e.ename, d.loc 2 from emp e, dept d 3 where e.deptno = d.deptno 4 and substr(e.ename, 1, 1) = ‘S’; 下列哪个语句是Oracle数据库中可用的ANSI兼容等价语句? A.select empno, ename, loc from emp join dept on emp.deptno = dept.deptno where substr(emp.ename, 1, 1) = ‘S’; B.select empno, ename, loc from emp, dept on emp.deptno = dept.deptno where substr(emp.ename, 1, 1) = ‘S’; C.select empno, ename, loc from emp join dept where emp.deptno = dept.deptno and substr(emp.ename, 1, 1) = ‘S’; D.select empno, ename, loc from emp left join dept on emp.deptno = dept.deptno and substr(emp.ename, 1, 1) = ‘S’; 2.你要对操纵Oracle数据库中的数据。下列哪个选项表示Oracle中select语句的功能, 并且不需要使用子查询? A.可以用select语句改变Oracle中的数据 B.可以用select语句删除Oracle 中的数据 C.可以用select语句和另一个表的内容生成一个表 D.可以用select语句对表截断 3.Oracle数据库中发出一个查询。下列哪个选项不能查询对用户定义静态表达式执行数学 运算时的查询组件? A.列子句 B.表子句 C.DUAL表 D.where子句 4.你要操纵Oracle数据,下列哪个不是SQL命令? A.select * from dual; B.set define C.update emp set ename = 6543 where ename = ‘SMITHERS’; D.create table employees(empid varchar2(10) primary key); 5.你要在Oracle中定义SQL查询。下列哪个数据库对象不能直接从select语句中引用?A.表 B.序列 C.索引 D.视图 6.你要根据PRODUCT_NAME列从PROFITS表查询中过滤返回的数据。下列哪个子句包含相 应过滤条件的引用? A.select B.from C.where D.having 7.下列代码显示了PROFITS表输出的局部: PRODUCT_NAME PRODUCT_TYPE QTR_END_DATE PROFIT ------------ ------------ ------------ ------------- BARNEY DOLL TOY 31-MAR-2001 6575430.30 GAS GRILL APP 31-MAR-2001 1234023.88

相关主题
相关文档
最新文档