极详细oracle数据库面试题目汇总_第1页
极详细oracle数据库面试题目汇总_第2页
极详细oracle数据库面试题目汇总_第3页
极详细oracle数据库面试题目汇总_第4页
极详细oracle数据库面试题目汇总_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

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

6、括:数据结构,数据操作以及完整性约束条件) 其次,关系数据库系统的共享性高,冗余低可以面向整个系统,而文件系统则具有 应用范围的局限性,不易扩展。 第三,关系数据库系统采用两级映射机制保证了数据的高独立性,从而使得程序的 编写和数据都存在很高的独立性。这方面是文件系统无法达到的,它只能针对于某 一个具体的应用。 (两级映射:保证逻辑独立性的外模式/模式映射和保证物理独立性的内模式 /模式映射。外模式:用户模式,是数据库用户的局部数据的逻辑结构特 征的描述。模式:数据库全体数据的逻辑结构特征的描述。内模式:也就是数据最 终的物理存储结构的描述。 )第四,就是关系性数据库系统由统一的 DBMS 进

7、行管理,从而为数据提供了如安全 性保护,并发控制,完整性检查和数据库恢复服务。5、 触发器的概念 , 存储过程的概念答案:触发器: 是存储在数据库中的过程, 当表被修改 (增、 删、改)时它隐式地被激发。 存储过程:是数据库语言 SQL 的集合,同样也存储在数据库中,但是他是由其他应 用程序来启动运行或者也可以直接运行。6、 基本 SQL 语句有哪些答案:select、insert、update、delete、create、 drop、 truncate1. 中级8、什么是事务一致性 ? 选择熟悉的数据库实现一个事务处理 , 如信用卡提款 .答案:事务的一致性: 是事务原子性的体现, 事务所对

8、应的数据库操作要么成功要么失败没有 第三种情况。事务不管是提交成功与否都不能影响数据库数据的一致性状态。事务: 用户定义的一个数据库操作序列, 这些操作要么全部成功完成要么全部不做, 是 一个不可分割的整体。定义事务的 SQL 语句有: BEGIN TRANSACTION , COMMIT , ROLLBACK 。事务的原子性:就是事务所包含的数据库操作要么都做,要么都不做 .事务的隔离性:事务对数据的操作不能够受到其他事务的影响。 事务的持续性:也就是说事务对数据的影响是永久的。对 '信用卡提款 '这一事务而言就是要保证 '提取到现金 '和'卡帐号余额

9、 '的修改要同时成 功或失败 .BEGIN TRANSACTION读取 A 的帐户余额 BALANCE ; BALANCE=BALANCE-AMOUNT 转帐金额; IF( BALANCE<0 ) THEN ROLLBACK ;ELSEBEGIN将 A 的新余额写回;读取 B 的帐户余额 BALANCEB ;BALANCEB=BALANCEB+AMOUNT 转帐金额;将 B 的新余额写回; COMMIT ; END IF ; END;9、实际编写和调试存储过程或触发器 .答案:10、实现索引的方式 ? 索引的原理 ? 索引的代价 ? 索引的类型?答案: 实现索引的方式有两种:针对

10、一张表的某些字段创建具体的索引,如对 oracle: createindex 索引名称 on 表名 (字段名 );在创建表时为字段建立主键约束或者唯一约束,系统将 自动为其建立索引。索引的原理:根据建立索引的字段建立索引表,存放字段值以及对应记录的物理地址, 从而在搜索的时候根据字段值搜索索引表的到物理地址直接访问记录。引入索引虽然提高了查询速度 ,但本身占用一定的系统存储容量和系统处理时间, 需要根据实际情况进行具体的分析 .索引的类型有: B 树索引,位图索引,函数索引等。11、view 的概念 ? 何时应用 ?答案: view 是对表级数据的多角度的透视 , 适用于对查询安全性、灵活性有

11、一定要求的环 境12、sql 语句例外处理 ?举例说明 ?答案: 当 sql 语句在执行过程中出现意外时 ,如查询时 , 未查询到结果 ;更改时无记录等情况 的应采取的措施 .以 oracle 为例 :测试其对 exception 的理解 . 如select 字段 into 变量 from table ;若查询出多条记录 ,应增加 exception 例外处理 .Oracle 处理异常有三种:1 预定义的例外处理, EXCEPTION WHEN exception_name THEN2 EXCEPTION_INIT 产生例外首 先 要 declare 声 明一 个 例外 名 ; 然后 将 例外

12、 名 和错 误 代 码绑 定 pragma exception_init( 错误名 ,错误代码 ) ;最后在 EXCEPTION 处 when 错误名 then 3 用 户 自 定 义 例 外 , 不用 EXCEPTION , 当 判断 条件 成熟 时 用 raise_application_error(-20000-20999 ,提示信息 ) 。13、判断下列论述是否正确。 (1) 一个事务中的某条 SQL 命令提交时,其它 SQL 命令可 以不提交。 (2) 在一个关系表中, 主键可唯一标识一行记录。 (3) 一个关系表中的外 键必定是另一表中的主键。 (4) 回滚可以在事务失败时, 回到

13、操作事务前的数据状态。答案: (1) 错误 (2)正确 (3)正确 (4) 正确14、以下哪些手段可保证数据库中数据的完整性和一致性: (1) 自定义数据类型 (2)触发器 (3) 主键和外键 (4) 事务答案: (1)(2)(3)(4) (为什么有 1)15、使用存储过程访问数据库比直接用 SQL 语句访问有哪些优点?答案: 存储过程是预编译过的, 执行时勿须编译, 执行速度更快; 存储过程封装了一批 SQL 语句,便于维护数据的完整性与一致性;可以实现代码的复用。1. 高级16、对于精通的数据库系统描述其体系结构,主要包括存储机制、回滚机制、运行机制等.答案: 对 oracle 系统而言

14、,描述 sga 的结构 ; 后台 pmon,ckpt 、 lgwr,smon 等进程的功能 ;表空 间的分配策略 ; 回滚段的结构oracle的sga (系统全局区)包括的主要区有:数据库缓存区,重做日志缓存区,共享池(数 据字典缓存和库缓存) ,大池等。数据库缓存区用来存放最近使用过的数据块主要和后台进 程中的数据库写进程(DBWR)以及数据文件发生关系; 重做日志缓存区用于存放操作数据库 数据所产生的重做日志信息,与之合作的有重做日志写进程(LGWR)和重做日志文件;共享池主要缓存 SQL/PLSQL ,资源锁,控制信息等,其中的库缓存主要缓存被解析执行过的 SQL/PLSQL 库缓存可分

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

16、数据库的恢复; PMON 用来恢复失败 的用户进程和服务进程, 并释放其所占的系统资源; CKPT 可以表示数据库在此出处于完整 状态。逻辑存储结构:数据块 BLOCK ,区 EXTENT ,段 SEGMENT ,表空间 TABLESPACE 物理存储空间:表空间,数据文件,控制文件,日志文件,数据字典软件体系结构就是上边对 SGA 和后台进程的描述。,包括 lock, 事务一致性等,如 oracle 系统提供的事务级的一致,考核其对日志的理解17 、对于精通的数据库系统描述其数据一致性的保证机制 答案: 在并发环境下 ,采用多种机制保持其数据的一致性 性、行级锁、表级锁等等 .18、对精通的

17、数据库系统描述其联机备份机制、恢复机制答案: 描述相关数据库的实时联机备份策略 ,如数据库系统在运行中通过何种方式保证其数 据的实时备份 , 出现问题时 ,应采取何种办法从联机备份进行恢复.对对 oracle 而言 , 其 archive online 备份方式应如何设置、修改什么参数、如何安排 备份空间等等 .19、精通的数据库系统描述性能优化方法,包括优化的策略、参数、验证方法等答案:20、 Truncate;与delete;的区别?(这道题可以衍生出很多的问题比如:想快速的清除一个很大的表中的数据应该用设么操作?答案是:应该用trun cate。还有,在对两个相同纪录数的分别表使用了 t

18、runcate,和delete commit;后对这两个表进行 count(*)统计记录数操作,那个表 速度会快些?答案是:使用了 truncate 的会快些。 )21、 写一个游标'并使用它。(这道题应该注意的是:在使用游标后一定要记得关闭游标)DeclareCursor cursor_name isSelect * from tablename;BeginOpen cursor_name;LoopFetch cursor_name into bianliang;Exit when cursor_name%notfound;SqlEnd loop;Close cursor_name;

19、End;22、在创建表的时候会设置pctfree 10pctused 40而创建表的索引的时候却没有pctused 40这是为什么?(这道题的主要思想是索引不能在pctused 40 上得到什么好处)23、使用过的最大的表有多少行纪录?(这道题不是看应试者的技术过不过关, 而是考察应试者是否有大型数据库的管理操作经验)不要对表的索引列进行函数操作, 因为这样系统就不能使用索引, 使查询变得很慢, 但是在 ora8i 以后就已经开始支持函数的索引,弥补了这个不足。24、ORACLE 数据库启动与关闭的步骤 启动:启动实例 加载数据库数据 打开数据库关闭:关闭数据库 卸载数据库数据 关闭实例25、

20、Delete 与 truncate 的区别delete 一般用于删除少量记录的操作, 而且它是要使用回滚段并且要进行显示的提交事务。 而 truncate 则使用于大量删除数据,而且隐式提交事务,其速度要比使用delete 快的多。26、DDL 和 DML 分别代表什么?DDL 表示数据定义语言,在 ORACLE 中主要包括 CREATE , ALTER ,DROPDML 表示数据操作语言,主要的 DML 有 SELECT , INSERT , UPDATE ,DELETE28、Javascript 中动态效果时调用的函数。29、数据库中有若干条相同的记录,删除到只剩下一条记录。如何做,请用S

21、QL 语句通过 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

22、来进行第二种方法:不关闭数据库,将数据库置于静默状态在SYS/SYSDBA 模式下用 ALTERSYSTEM QUISCE RESTRICTED ,这种状态下只有 SYS/SYSDBA 才可以对数据库进行操 作,修改完毕之后再退出静默状态ALTER SYSTEM UNQUISCE在这里复习到了数据库的两种特殊状态:静默状态(QUISCE) 和挂起状态静默状态就是只有特殊权限的 SYS/SYSDBA 才可以对数据库进行操作,使用 ALTER SYSTEM QUISCE RESTRICTED 以后系统将等候活动着的会话主动结束,同时阻止建立 新的会话,系统挂起所有的 SQL 语句,等恢复以后再重新

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

24、 操作语句,相反如果事务操作是 INSERT 那么记录相应的则是 DELETE 操作了。34、Oracle的81和91有什么区别35、 一张表有 10 万条记录,如何删除其中的任意20条记录?请用 SQL 语句进行操作36、 客户端如何访问服务器端的oracle?如果客户端无法访问服务器端的oralce,可能会是什么原因?客户端通过网络或者进程方式以合法的用户身份来取得和服务器端ORACLE 的连接。如果客户端无法访问服务器端 ORACLE 可能出现的原因是:用户无权访问;服务器端数据 库并没有打开(启动数据库的第三步没有完成) ;如果服务器是在共享模式下的则有可能 没有对应于该客户所使用的通

25、信协议的调度进程Dnnn。37、oracle 中执行语句错误时去哪里查找错误信息?Select * from USER_ERRORS38、select语句需要提交吗? insert和update语句呢?39、在执行 insert 语句并提交后,这些提交的数据存储到什么地方? 被存储到数据文件中40、oracle 中有哪些类型的文件? 数据文件,控制文件,日志文件和数据字典41、介绍一下 oracle 的体系结构? 逻辑体系结构:块,区,段,表空间 物理体系结构:表空间,三大文件 软件体系结构: SGA, 后台进程42、谈谈对 oracle 的 row_ id 是否理解?请简述?ORACLE 的

26、 row_id 是一个伪列, 其个是为 18 个字节可将这 18 个字节用 6363 来划分, 分别表示段编号,数据文件编号,数据块编号和记录编号。Row_id 表示的是一个记录的物理存储地址。43、oracle 中如何删除用户?Oracle 中使用 DROP USER 来删除用户,如果使用 DROP USER CASCADE 那么用户的对 象也同时被删除掉。 为了达到删除用户的效果而又不影响对用户下的对象的使用可以使用 alter user username account lock 将用户锁定。44、客户端对服务器端的oralce 操作的流程是什么?专用模式下:用户通过应用程序进程试图去得

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

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

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

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

31、ally 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_salV_name %type;V_emp_no employee.e

32、mp_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_name and emp_n

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

34、manentextent 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/localautoallocate/uniform size xxxmb;create user us

35、er_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

36、 table from user_name; revoke update on table_name from user_name;56、在 Oracle 中如何更改用户名?57、如何在 Oracle 中查询某个用户下所有已建的表? 答: select * from cat;57、执行 TRUNCA TE 命令后,存储空间是否还存在,是否可被其他的表占用?执行 TRUNCATE 之后,为表分配的区空间将被回收 HWM 将回退,如果在使用 TRUNCA TE 的时候没有指定 REUSE STORAGE 那么执行操作后仅仅留下由 MINEXTENTS 所指定的区 否则表的所有空间将被回收用于再分配

37、。59、何在 Oracle 中查看当前用户,通常有哪些方式?(提示: show user 和 select * from user_users) show user;/select username from user_users;60、出在 Oracle 中,创建表空间的语法结构,以及所含参数说明。 Create tablespace tablespacenameDatafile ' Logging/nologging Default storage(initial kb Next kb Minextents x Maxextents y Pctincrease z )online/

38、not online extent management dictionary/localautoallocate/uniform size kb;61、如何判断游标是否到了末尾?(提示:用%notfound )cursor_name%notfound62、在 Oracle 中,如何查看当前用户下的 所有表空间 ?Select tablespace_name from user_tablespaces;63、在 Oracle 中,你所创建的表空间信息放在哪里? 存放在数据字典中,数据字典内容对应于系统表空间 SYSTEM 表空间。64、ORACLE 中的控制文件什么时候读取?ORACLE 服务

39、器启动时,先启动实例然后再读取数据库的各个文件当然也包括控制文件。 也就是说在数据库服务器启动的第二步时读取。65、Oracle 的表格信息存储在哪个地方? SYSTEM 表空间的数据字典文件中。66、如何根据字典创建一个表空间,并说明参数?66、 ORACLE 中当一个用户正在操作一个执行过程,管理员此时取消了他的权限,会发生 什么事情?68、谈谈你对角色的理解,常用的角色有哪些? 角色就是一组权限的数据库实体, 它不属于任何模式或用户但是可以被授予任何用户。 常用 的角色有 CONNECT ,DBA ,RESOURCE,SELECT_CA TALOG_ROLE (查询所有表视图 权),DE

40、LETE_CA TALOG_ROLE (删除权限)等。角色的创建和授权:和创建用户为用户授权差不多。Create role role_name identifiedgrant 权限 to role_name。69、简述 Oracle 的归档与不归档工作模式,分别说明。Oracle 归档模式是指在创建数据库时指定了 ARCHIVELOG 参数, 这种模式下, 当重做日志 文件写满的时候会将该重做日志文件的内容保存到指定的位置(由初始化文件中的参数 ARCHIVE_LOG_DEST_n 来决定)。并不是数据库在归档模式下工作的时候就可以自动完成 归档操 作, 在归档 模式 下可 以有两 种归 档方

41、 式:自 动归 档( 在初始 化文 件中 的参数 ARCHIVE_LOG_START 被设置为TRUE)和手动归档。如果归档模式下没有启动自动归档 的话,而且又没有实行手动归档那么当 LGWR 进程将重做日志信息写入已经写满的重做日 志文件时数据库将会被挂起直到进行了归档。 可见归档是对重做日志文件信息的一种保护措 施。Oracle 非归档模式下当重做日志文件写满以后若是有 LGWR 进行重做日志信息的写入操作 时,以前保存在重做日志文件中的重做日志信息就会被覆盖掉。70、Oracle 索引分为哪几类,说出唯一索引和位图索引的概念。Oracle 索引有 B 树索引,位图索引,函数索引,簇索引等

42、。唯一索引也是 B 树索引的一种,它要求被索引的字段值不可以重复。在创建的时候使用B树算法创建。位图索引并不是采用象唯一索引那样存储(索引字段值,记录ROWID )来创建索引段的,而是为每一个唯一的字段值创建一个位图,位图中使用位元来对应一个记录的ROWID。位元到 ROWID 是通过映射的到的。71、ORACLE 的基本数据类型有哪些?Char()存储定长字符,定义的时候可以不为他指定长度但是如若往里插入值则会出错;varchar2()存储变长字符定义的时候必须指定长度,date存储时间日期;Number。数字类型,包括整型,浮点型等;clob()大容量字符串;blob()大二进制对象72、

43、SQL 中,执行四舍五入的是哪个函数?trunc (value,保留Round (value,保留的小数位数)与只对应的还有一个特别相似的函数 的小数位数)它的作用是根据要保留的小数位数来截取原数。73、oracle数据库表存放到磁盘什么地方?数据文件 ORACLE数据库的表存放在物理文件中的数据文件中。74、当执行insert语句并提交后,这些提交的数据存储到什么地方? 存储到了数据库的数据文件中。75、Exits和in在ORALCE数据库中那个执行效率更高? EXITS执行效率要比使用IN要快。76、ORACLE自己提供的函数,想知道具体位置,如何操作?77、数据库的几种物理文件?1)数据

44、文件2 )控制文件3)日志文件78、控制文件都含有哪些信息?控制文件存放有实例信息(实例名称创建时间等),数据文件和日志文件信息,还有系统运行时记录的系统变更码(SCN),检查点信息和归档的当前状态信息等。数据库在加载数据库 的时候首先要读取控制文件获得和数据库有关的物理结构信息之后才能够正确加载数据文件和日志文件并打开数据库。79、Decode函数的用法?DECODE 的语法:DECODE(value,if1,then1,if2,then2,if3,then3,.,else),表示如果 value 等于 if1 时,DECODE函数的结果返回then1,.,如果不等于任何一个if值,则返回e

45、lse。初看一下,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 THENRETURN翻译值1)ELSIF 条件=值 2 THENRETURN翻译值 2)ELSIF 条件=值 n THENRETUR

46、N翻译值 n)ELSERETURN缺省值)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,表结构为:mon th sellchar(6)nu mber(10,2)-月份-月销售金额现有数据为:20000110002000021100200

47、00312002000041300200005140020000615002000071600200101110020020212002003011300想要转化为以下结构的数据:yearchar(4)-年份mon th1number(10,2)-1月销售金额mon th2number(10,2)-2月销售金额mon th3number(10,2)-3月销售金额mon th4number(10,2)-4月销售金额mon th5number(10,2)-5月销售金额mon th6number(10,2)-6月销售金额mon th7number(10,2)-7月销售金额mon th8number(

48、10,2)-8月销售金额mon th9number(10,2)-9月销售金额mon th10nu mber(10,2)-10月销售金额mo nth11nu mber(10,2)-11月销售金额mon th12nu mber(10,2)-12月销售金额结构转化的SQL语句为:create or replace viewv_sale(year,m on th1,m on th2,m on th3,m on th4, mon th5,m on th6,m on th7,m on th8,m on th9, mon th10,mo nth11,mo nth12)asselectsubstrb(m on

49、 th,1,4),sum(decode (substrb(month,5,2),'01',sell,0),sum(decode (substrb(month,5,2),'02',sell,0),sum(decode (substrb(month,5,2),'03',sell,0), sum(decode (substrb(month,5,2),'04',sell,0),sum(decode (substrb(month,5,2),'05',sell,0),sum(decode (substrb(month,5,2)

50、,'06',sell,0),sum(decode (substrb(month,5,2),'07',sell,0),sum(decode (substrb(month,5,2),'08',sell,0),sum(decode (substrb(month,5,2),'09',sell,0),sum(decode (substrb(month,5,2),'10',sell,0),sum(decode (substrb(month,5,2),'11',sell,0),sum(decode (substr

51、b(month,5,2),'12',sell,0) from salegroup by substrb(m on th,1,4);79、CASE语句的用法?Oracle用法很简单:SELECT last_ nam e, job_id, salaryCASE job_idWHEN 'IT_PROG' THEN 1.10*salaryWHEN 'ST_CLERK' THEN 1.15*salaryWHEN 'SA_REP' THEN 1.20*salaryELSE salary END "REVISED_SALARY&quo

52、t;FROM employees80、truncate 和 delete 的区别?1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而 TRUNCA TE则不会被撤销。2、TRUNCA TE是一个 DDL语言而 DELETE 是DML语句,向其他所有的 DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK 命令。3、 TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时, 经过TRUNCATE操作后的表比 DELETE操作后的表要快得多。4、 TRUNCA TE不能触发触发器,DELETE会

53、触发触发器。5、不能授予任何人清空他人的表的权限。6、 当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。7、不能清空父表。81、表空间如何扩展?并用语句写出?两种扩展方式:a)增加数据文件alter tablespace tablespace_name add datafile ''MBb)扩展数据文件大小alter database datafile 'resize newMB82、表空间区管理方式?哪种方式现在是推荐使用的?a)字典管理方式extent management dictionary; 默认方式b) 本地管理方式extent management localautoallocate/uniform xxmb;83、用什么函数获得日期?和日期中的月,日,年to_char(sysdate,'yyyy ') :2006to_char(sysdate, 'year'):tow thsound sixto_char(sysdate, 'mm ')

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论