收藏 分享(赏)

oracle数据库面试题目汇总.doc

上传人:刘岱文 文档编号:4244 上传时间:2018-05-13 格式:DOC 页数:16 大小:114KB
下载 相关 举报
oracle数据库面试题目汇总.doc_第1页
第1页 / 共16页
oracle数据库面试题目汇总.doc_第2页
第2页 / 共16页
oracle数据库面试题目汇总.doc_第3页
第3页 / 共16页
oracle数据库面试题目汇总.doc_第4页
第4页 / 共16页
oracle数据库面试题目汇总.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、1. 对字符串操作的函数? 答:ASCII() -函数返回字符表达式最左端字符的 ASCII 码值CHR() -函数用于将 ASCII 码转换为字符-如果没有输入 0 255 之间的 ASCII 码值 CHR 函数会返回一个 NULL 值-应该是必须给 chr()赋数字值 concat(str,str)连接两个字符串LOWER() -函数把字符串全部转换为小写UPPER() -函数把字符串全部转换为大写 LTRIM() -函数把字符串头部的空格去掉RTRIM() -函数把字符串尾部的空格去掉TRIM() -同时去掉所有两端的空格实际上 LTRIM(),RTRIM(),TRIM()是将指定的字符

2、从字符串中裁减掉其中 LTRIM(),RTRIM()的格式为 xxxx(被截字符串,要截掉的字符串) ,但是 TRIM()的格式为 TRIM(要截掉的一个字符 from 被截的字符串)SUBSTR() -函数返回部分字符串INSTR(String,substring) -函数返回字符串中某个指定的子串出现的开始位置,如果不存在则返回 0REPLACE(原来的字符串,要被替换掉的字符串,要替换成的字符串)SOUNDEX() -函数返回一个四位字符码 -SOUNDEX 函数可用来查找声音相似的字符串但 SOUNDEX 函数对数字和汉字均只返回NULL 值 2、 事务概念答案:事务是这样一种机制,它

3、确保多个 SQL 语句被当作单个工作单元来处理。事务具有以下的作用: * 一致性:同时进行的查询和更新彼此不会发生冲突,其他用户不会看到发生了变化但尚未提交的数据。 * 可恢复性:一旦系统故障,数据库会自动地完全恢复未完成的事务。 3、oracle 中查询系统时间答:select sysdate from dual4、 触发器的作用,什么时候用触发器,创建触发器的步骤,触发器里是否可以有 commit, 为什么?答案:触发器是可以由事件来启动运行的,存在于数据库服务器中的一个过程。他的作用:可以实现一般的约束无法完成的复杂约束,从而实现更为复杂的完整性要求。使用触发器并不存在严格的限定,只要用

4、户想在无人工参与的情况下完成一般的定义约束不可以完成的约束,来保证数据库完整性,那么就可以使用触发器。由于触发器主要是用来保证数据库的完整性的,所以要创建一个触发器,首先要明确该触发器应该属于那一种(DML ,INSTEAD OF,SYSTEM)因为他们各有个的用途;其次就是要确定触发器被触发以后所设计到的数据。出发器中不可以使用 COMMIT。5数字函数abs()绝对值 exp(value)e 的 value 次幂 ceil()大于等于该值的最小整数 floor()小于等于该值的最大整数 trunc(value,precision)保留 precision 个小数截取 valueround(

5、value,precision)保留 precision 个小数对 value 进行四舍五入 sign()根据值为正负零返回 1,-1,0 mod()取模操作 power(value,exponent)value 的 exponent 次幂sqrt()求平方根1. 初级4、 关系数据库系统与文件数据库系统的区别在那里?关系数据库系统一般适用那些方面? 答案: 关系数据库系统文件系统的区别在于:首先,关系性数据库的整体数据是结构化的,采用关系数据模型来描述,这是它与文件系统的根本区别。 (数据模型包括:数据结构,数据操作以及完整性约束条件)其次,关系数据库系统的共享性高,冗余低可以面向整个系统,

6、而文件系统则具有应用范围的局限性,不易扩展。第三,关系数据库系统采用两级映射机制保证了数据的高独立性,从而使得程序的编写和数据都存在很高的独立性。这方面是文件系统无法达到的,它只能针对于某一个具体的应用。 (两级映射:保证逻辑独立性的外模式/模式映射和保证物理独立性的内模式/模式映射。外模式:用户模式,是数据库用户的局部数据的逻辑结构特征的描述。模式:数据库全体数据的逻辑结构特征的描述。内模式:也就是数据最终的物理存储结构的描述。 )第四,就是关系性数据库系统由统一的 DBMS 进行管理,从而为数据提供了如安全性保护,并发控制,完整性检查和数据库恢复服务。5、 触发器的概念,存储过程的概念.

7、答案: 触发器: 是存储在数据库中的过程,当表被修改(增、删、改)时它隐式地被激发。存储过程:是数据库语言 SQL 的集合,同样也存储在数据库中,但是他是由其他应用程序来启动运行或者也可以直接运行。6、 基本 SQL 语句有哪些. 答案: select、insert、 update、delete、create 、drop、truncate1. 中级8、什么是事务一致性 ? 选择熟悉的数据库实现一个事务处理,如信用卡提款. 答案: 事务的一致性:是事务原子性的体现,事务所对应的数据库操作要么成功要么失败没有第三种情况。事务不管是提交成功与否都不能影响数据库数据的一致性状态。事务:用户定义的一个数

8、据库操作序列,这些操作要么全部成功完成要么全部不做,是一个不可分割的整体。定义事务的 SQL 语句有:BEGIN TRANSACTION,COMMIT, ROLLBACK。事务的原子性:就是事务所包含的数据库操作要么都做,要么都不做.事务的隔离性:事务对数据的操作不能够受到其他事务的影响。事务的持续性:也就是说事务对数据的影响是永久的。对信用卡提款这一事务而言就是要保证提取到现金和 卡帐号余额 的修改要同时成功或失败.BEGIN TRANSACTION读取 A 的帐户余额 BALANCE;BALANCE=BALANCE-AMOUNT 转帐金额;IF(BALANCE0 ) THENROLLBAC

9、K;ELSEBEGIN将 A 的新余额写回;读取 B 的帐户余额 BALANCEB;BALANCEB=BALANCEB+AMOUNT 转帐金额;将 B 的新余额写回;COMMIT;END IF;END;9、 实际编写和调试存储过程或触发器. 答案: 10、 实现索引的方式? 索引的原理? 索引的代价? 索引的类型? 答案: 实现索引的方式有两种:针对一张表的某些字段创建具体的索引,如对 oracle: create index 索引名称 on 表名(字段名 );在创建表时为字段建立主键约束或者唯一约束,系统将自动为其建立索引。索引的原理:根据建立索引的字段建立索引表,存放字段值以及对应记录的物

10、理地址,从而在搜索的时候根据字段值搜索索引表的到物理地址直接访问记录。引入索引虽然提高了查询速度,但本身占用一定的系统存储容量和系统处理时间,需要根据实际情况进行具体的分析.索引的类型有:B 树索引,位图索引,函数索引等。11、 view 的概念 ? 何时应用? 答案: view 是对表级数据的多角度的透视 ,适用于对查询安全性、灵活性有一定要求的环境12、 sql 语句例外处理? 举例说明? 答案: 当 sql 语句在执行过程中出现意外时,如查询时,未查询到结果 ;更改时无记录等情况的应采取的措施.以 oracle 为例: 测试其对 exception 的理解.如select 字段 into

11、 变量 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

12、、 判断下列论述是否正确。 (1) 一个事务中的某条 SQL 命令提交时,其它 SQL 命令可以不提交。 (2) 在一个关系表中,主键可唯一标识一行记录。 (3) 一个关系表中的外键必定是另一表中的主键。 (4) 回滚可以在事务失败时,回到操作事务前的数据状态。 答案: (1)错误 (2)正确 (3)正确 (4)正确14、 以下哪些手段可保证数据库中数据的完整性和一致性: (1)自定义数据类型 (2)触发器 (3)主键和外键 (4)事务 答案: (1)(2)(3)(4) (为什么有 1)15、 使用存储过程访问数据库比直接用 SQL 语句访问有哪些优点? 答案:存储过程是预编译过的,执行时勿须

13、编译,执行速度更快;存储过程封装了一批SQL 语句,便于维护数据的完整性与一致性;可以实现代码的复用。1. 高级16、 对于精通的数据库系统描述其体系结构,主要包括存储机制、回滚机制、运行机制等. 答案:对 oracle 系统而言,描述 sga 的结构; 后台 pmon,ckpt、lgwr,smon 等进程的功能; 表空间的分配策略; 回滚段的结构oracle 的 sga(系统全局区)包括的主要区有:数据库缓存区,重做日志缓存区,共享池(数据字典缓存和库缓存) ,大池等。数据库缓存区用来存放最近使用过的数据块主要和后台进程中的数据库写进程(DBWR)以及数据文件发生关系;重做日志缓存区用于存放

14、操作数据库数据所产生的重做日志信息,与之合作的有重做日志写进程(LGWR)和重做日志文件;共享池主要缓存 SQL/PLSQL,资源锁,控制信息等,其中的库缓存主要缓存被解析执行过的 SQL/PLSQL 库缓存可分为共享 SQL 和私有 SQL 两个区,共享 SQL 用于存放 SQL语句的语法分析结果和执行计划,私有 SQL 则用来存放与具体 SQL 语句执行有关的绑定变量,会话参数等。ORACLE 实例的另外一个重要部分就是其后台进程,主要的后台进程有:数据库写进程(DBWR) ,重做日志写进程(LGWR) ,系统监视器(SMON) ,进程监视器(PMON) ,检查点进程(CKPT) 。DBW

15、R 主要是对数据库缓存区中的脏冷数据进行写入数据文件操作;LGWR 主要是将对数据库数据操作所产生的重做日志信息写入到重做日志文件中;SMON完成由于非正常关闭数据库的情况下重起数据库时对数据库的恢复;PMON 用来恢复失败的用户进程和服务进程,并释放其所占的系统资源;CKPT 可以表示数据库在此出处于完整状态。逻辑存储结构:数据块 BLOCK,区 EXTENT,段 SEGMENT,表空间 TABLESPACE物理存储空间:表空间,数据文件,控制文件,日志文件,数据字典软件体系结构就是上边对 SGA 和后台进程的描述。17 、对于精通的数据库系统描述其数据一致性的保证机制,包括 lock,事务

16、一致性等. 答案: 在并发环境下,采用多种机制保持其数据的一致性,如 oracle 系统提供的事务级的一致性、行级锁、表级锁等等.18、对精通的数据库系统描述其联机备份机制、恢复机制,考核其对日志的理解. 答案: 描述相关数据库的实时联机备份策略,如数据库系统在运行中通过何种方式保证其数据的实时备份, 出现问题时,应采取何种办法从联机备份进行恢复.对对 oracle 而言 ,其 archive online 备份方式应如何设置、修改什么参数、如何安排备份空间等等.19、 精通的数据库系统描述性能优化方法,包括优化的策略、参数、验证方法等. 答案: 20、Truncate; 与 delete;的

17、区别? (这道题可以衍生出很多的问题比如:想快速的清除一个很大的表中的数据应该用设么操作?答案是:应该用 truncate。还有,在对两个相同纪录数的分别表使用了 truncate,和 delete commit;后对这两个表进行 count(*)统计记录数操作,那个表速度会快些?答案是:使用了 truncate 的会快些。)21、写一个游标并使用它。 (这道题应该注意的是:在使用游标后一定要记得关闭游标)。Declare Cursor cursor_name isSelect * from tablename;BeginOpen cursor_name;LoopFetch cursor_na

18、me into bianliang;Exit when cursor_name%notfound;Sql.End loop;Close cursor_name;End;22、在创建表的时候会设置pctfree 10pctused 40而创建表的索引的时候却没有pctused 40这是为什么?(这道题的主要思想是索引不能在 pctused 40 上得到什么好处)23、使用过的最大的表有多少行纪录?(这道题不是看应试者的技术过不过关,而是考察应试者是否有大型数据库的管理操作经验)不要对表的索引列进行函数操作,因为这样系统就不能使用索引,使查询变得很慢,但是在 ora8i 以后就已经开始支持函数的索

19、引,弥补了这个不足。24、ORACLE 数据库启动与关闭的步骤启动:启动实例-加载数据库数据-打开数据库关闭:关闭数据库-卸载数据库数据- 关闭实例25、Delete 与 truncate 的区别delete 一般用于删除少量记录的操作,而且它是要使用回滚段并且要进行显示的提交事务。而 truncate 则使用于大量删除数据,而且隐式提交事务,其速度要比使用 delete 快的多。26、DDL 和 DML 分别代表什么?DDL 表示数据定义语言,在 ORACLE 中主要包括 CREATE,ALTER,DROPDML 表示数据操作语言,主要的 DML 有 SELECT,INSERT,UPDATE

20、 ,DELETE28、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、你在项目现场,用户要求你向正在运行的表中添

21、加一个字段,你该怎么做?第一种方法:关闭数据库,然后使用受限模式打开,由 sys/sysdba 来进行第二种方法:不关闭数据库,将数据库置于静默状态在 SYS/SYSDBA 模式下用 ALTER SYSTEM QUISCE RESTRICTED,这种状态下只有 SYS/SYSDBA 才可以对数据库进行操作,修改完毕之后再退出静默状态 ALTER SYSTEM UNQUISCE在这里复习到了数据库的两种特殊状态:静默状态(QUISCE)和挂起状态静默状态就是只有特殊权限的 SYS/SYSDBA 才可以对数据库进行操作,使用 ALTER SYSTEM QUISCE RESTRICTED 以后系统将

22、等候活动着的会话主动结束,同时阻止建立新的会话,系统挂起所有的 SQL 语句,等恢复以后再重新激活会话执行挂起的 SQL。挂起状态就是系统将数据库所有对物理文件(数据文件,控制文件,日志文件)的 I/O操作都暂停,但是并不禁止非 DBA 用户对数据库进行操作。这种状态主要用于进行数据库备份。33、Oracle 中回滚的概念?回滚段有什么作用。回滚就是在事务提交之前将数据库数据恢复到事务修改之前数据库数据状态。回滚段就是为回滚提供依据,记录的是事务操作数据库之前的数据或者对应于以前操作的操作,这个内容要根据以前的操作而定。比如说以前事务操作如果是 UPDATE 那么回滚段则存储 UPDATE 以

23、前的数据,如果事务是 DELETE 操作那么存储的则是与之相对应的 INSERT 操作语句,相反如果事务操作是 INSERT 那么记录相应的则是 DELETE 操作了。34、Oracle 的 8I 和 9I 有什么区别35、一张表有 10 万条记录,如何删除其中的任意 20 条记录?请用 SQL 语句进行操作36、客户端如何访问服务器端的 oracle?如果客户端无法访问服务器端的 oralce,可能会是什么原因?客户端通过网络或者进程方式以合法的用户身份来取得和服务器端 ORACLE 的连接。如果客户端无法访问服务器端 ORACLE 可能出现的原因是:用户无权访问;服务器端数据库并没有打开(

24、启动数据库的第三步没有完成) ;如果服务器是在共享模式下的则有可能没有对应于该客户所使用的通信协议的调度进程 Dnnn。37、oracle 中执行语句错误时去哪里查找错误信息?Select * from USER_ERRORS38、select 语句需要提交吗? insert 和 update 语句呢?39、在执行 insert 语句并提交后,这些提交的数据存储到什么地方?被存储到数据文件中40、oracle 中有哪些类型的文件?数据文件,控制文件,日志文件和数据字典41、介绍一下 oracle 的体系结构?逻辑体系结构:块,区,段,表空间物理体系结构:表空间,三大文件软件体系结构:SGA,后

25、台进程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、客户端对服

26、务器端的 oralce 操作的流程是什么?专用模式下:用户通过应用程序进程试图去得到一个与 ORACLE 数据库服务器的连接客户端通过网络传递连接请求,ORACLE 服务器则使用监听进程监听用户请求,并且来验证用户身份,通过验证则为用户分配一专用服务进程用户提交 SQL 语句专用服务进程则首先在 SGA 区的共享池中检查是否有与该 SQL 语句相似的已经被解析执行并且缓存的 SQL 语句,如果有则采用它的解析结果和执行计划执行 SQL 语句,如果没有则对 SQL 语句进行语法解析生成执行计划通过解析则执行操作获取数据将执行结果返回给客户。共享模式下:与专用模式不同在于当监听程序验证用户的合法性

27、以后并不为它分配一个专用的服务进程,而是将该请求与响应的调度进程相联系起来,并将起放入到一个请求队列中,最终由响应的 Dnnn 来从调度队列中获取一个请求并为之分配一个空闲的服务进程,接下来有服务进程对该请求进行服务操作和专用方式下相同,处理完成之后由服务进程先将结果放入一个返回队列最后再由调度进程(Dnnn)将返回队列中的结果返回给对应的用户。45、exits 和 in 在 ORALCE 数据库中那个执行效率更高?Exits 执行效率比 in 高。因为:46、如何判断游标已经到最后一行?Cursor_name%notfound47、聚簇索引和普通索引在不同的 SQL 语句中哪个效率更高?(笔

28、试题,原题回忆不起来,主题就是聚簇索引和普通索引的区别)概念类:聚合函数? Session 的定义和用法? Oracle 的存储过程 ? 什么是构造函数? 48、简述 ORACLE 中 SGA 的组成部分。答:系统全局区包括:共享池、重做日志缓存区、数据高速缓存区,大池,JAVA 池。49、简述 ORACLE 的启动和关闭各有多少步骤?启动:启动实例、装载数据库数据、打开数据库。关闭:关闭数据库、卸载数据库数据、关闭实例。50、在 Oracle 表空间的分类和作用,如排序时数据将放在什么表空间?作用是为了突破存储容量的限制,是一个逻辑概念。排序数据放在临时表空间。51、执行 COMMIT 命令

29、时,数据库将会发生什么改变,ROLLBACK 呢?答:commit 提交时首先是与事务对应的重做日志信息将被写入到数据库物理文件中的重做日志文件中,至于是否会真正将事务操作的内容反映到数据文件还好看 DBWR 是否启动了。在完成数据库的插入,删除和修改操作时,只有当事务提交到数据库才算完成,有提交前只有操作数据库的本人才能看到,别人只有在最后提交完成才可以看到。ROLLBACK 回滚当前尚未提交的事务,使数据库恢复到事务操作前的状态。52、用命令创建用户,并为用户授权。Create user user_name identified by password /identified extern

30、ally/identified blobally as CN=userdefault tablespace tablespace_nametemporary 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_salV_name employee.name%type;V_emp_

31、no employee.emp_no%type;V_salary employee.salary%type;Cursor cursor_sal isSelect name,emp_no,salary from employee where salary between 0 and 1000;BeginOpen cursor_sal;LoopFetch 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_n

32、ame and emp_no=v_emp_no;End loop;Close cursor_sal;Commit;End;54、 ORACLE 数据库都有哪些类型的文件?数据文件,控制文件,日志文件,参数文件55、 用命令创建表空间、用户,并为用户授权、收回权限。Create tablespace tabllespacenameDatafile f:orcluser001.dbf size 20mDefault storage(Initial 512kNext 512kminextents 2pctincrease 50% maxExitnts 2048)minimum extent 512k

33、loggingonlinepermanentextent management dictionary;回收权限: revoke privilege from user;create tablespace tablespace_name datafile default storage(initial xxxkbnext yykbminextents 2pctincrease nnnnmaxextents mmm)loggingonlineextent management dictionary/localautoallocate/uniform size xxxmb;create user u

34、ser_nameidentified by passwore/identified externally/identified globally as CN=userdefault tablespace tablespace_nametemporary tablespace tablespace_nameaccount lock /unlockgrant connect to user_name;grant create table to suer_name;grant update on table_name to user_name;revoke create table from use

35、r_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 tablespacenameDatafile Logging/nologgingDefault storage(initial kbNext kbMinextents x

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 网络技术

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报