银行数据库面试题.docx

上传人:h**** 文档编号:1641793 上传时间:2019-03-09 格式:DOCX 页数:11 大小:36.03KB
下载 相关 举报
银行数据库面试题.docx_第1页
第1页 / 共11页
银行数据库面试题.docx_第2页
第2页 / 共11页
银行数据库面试题.docx_第3页
第3页 / 共11页
银行数据库面试题.docx_第4页
第4页 / 共11页
银行数据库面试题.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、Oracle 常见面试题1、对数据库 SQL2005、ORACLE 熟悉吗?SQL2005 是微软公司的数据库产品。是一个 RDBMS 数据库,一般应用在一些中型数据库的应用,不能跨平台。ORACLE 是 ORACLE 公司的数据产品,支持海量数据存储,支持分布式布暑,支持多用户,跨平台,数据安全完整性控制性能优越,是一个 ORDBMS,一般用在大型公司。2、能不能设计数据库?如何实现数据库导入与导出的更新使用 POWERDISINE 工具的使用,一般满足第三范式就可以了。EXP 与 IMP 数据库的逻辑导入与导出3、如何只显示重复数据,或不显示重复数据显示重复:select * from t

2、ablename group by id having count(*)1不显示重复:select * from tablename group by id having count(*)=14、什么是数据库的映射就是将数据库的表与字段对应到模型层类名与属性的过程.5、写分页有哪些方法,你一般用什么方法?用 SQL 语句写一个分页?如何用存储过程写分页?在 SQLSERVER 中使用 TOP 分页,在 ORACLE 中用 ROWNUM,或分析函数ROW_NUMBER使用 TOP:select top 20,n.* from tablename n minus select top 10,m.*

3、 from tablename m使用分析函数:select * from (select n.*,row_number() over(order by columnname) num from tablename n)where num=10 and num 10 16. Oracle 中使用了索引的列,对该列进行 where 条件查询、分组、排序、使用聚集函数,哪些用到了索引? 均会使用索引, 值得注意的是复合索引(如在列 A 和列 B 上建立的索引)可能会有不同情况 v17. Oracle 中 where 条件查询和排序的性能比较? Order by 使用索引的条件极为严格,只有满足如下

4、情况才可以使用索引, 1). order by 中的列必须包含相同的索引并且索引顺序和排序顺序一致 2). 不能有 null 值的列 所以排序的性能往往并不高,所以建议尽量避免 order by18. 解释冷备份和热备份的不同点以及各自的优点? 冷备份发生在数据库已经正常关闭的情况下,将关键性文件拷贝到另外位置的一种说法 热备份是在数据库运行的情况下,采用归档方式备份数据的方法 冷备的优缺点: 1)是非常快速的备份方法(只需拷贝文件) 2)容易归档(简单拷贝即可) 3)容易恢复到某个时间点上(只需将文件再拷贝回去) 4)能与归档方法相结合,作数据库“最新状态”的恢复。 5)低度维护,高度安全。

5、 冷备份不足: 1)单独使用时,只能提供到“某一时间点上”的恢复。 2)在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。 3)若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。 4)不能按表或按用户恢复。 热备的优缺点 1)可在表空间或数据文件级备份,备份时间短。 2)备份时数据库仍可使用。 3)可达到秒级恢复(恢复到某一时间点上)。 4)可对几乎所有数据库实体作恢复。 5)恢复是快速的,在大多数情况下在数据库仍工作时恢复。 热备份的不足是: 1)不能出错,否则后果严重。 2)若热备份不成功,所得结果不可用于时间点的恢复。

6、 3)因难于维护,所以要特别仔细小心,不允许“以失败而告终”。 19. 解释什么是死锁,如何解决 Oracle 中的死锁? 简言之就是存在加了锁而没有解锁,可能是使用锁没有提交或者回滚事务,如果是表级锁则不能操作表,客户端处于等在状态,如果是行级锁则不能操作锁定行 解决办法: 1). 查找出被锁的表 select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id; select b.username,b.sid

7、,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time; 2). 杀进程中的会话 alter system kill session “sid,serial#“; 20. 简述 oracle 中 dml、ddl、dcl 的使用 Dml 数据操纵语言,如 select、update、delete,insert Ddl 数据定义语言,如 create table 、drop table 等等 Dcl 数据控制语言, 如 commit、 roll

8、back、grant、 invoke 等 21. 说说 oracle 中的经常使用到得函数 Length 长度、 lower 小写、upper 大写, to_date 转化日期, to_char 转化字符 Ltrim 去左边空格、 rtrim 去右边空格,substr 取字串,add_month 增加或者减掉月份、to_number 转变为数字 22. 怎样创建一个一个索引,索引使用的原则,有什么优点和缺点 创建标准索引: CREATE INDEX 索引名 ON 表名 (列名) TABLESPACE 表空间名; 创建唯一索引: CREATE unique INDEX 索引名 ON 表名 (列名

9、) TABLESPACE 表空间名; 创建组合索引: CREATE INDEX 索引名 ON 表名 (列名 1,列名 2) TABLESPACE 表空间名; 创建反向键索引: CREATE INDEX 索引名 ON 表名 (列名) reverse TABLESPACE 表空间名; 索引使用原则: 索引字段建议建立 NOT NULL 约束 经常与其他表进行连接的表,在连接字段上应该建立索引; 经常出现在 Where 子句中的字段且过滤性很强的,特别是大表的字段,应该建立索引; 可选择性高的关键字 ,应该建立索引; 可选择性低的关键字,但数据的值分布差异很大时,选择性数据比较少时仍然可以利用索引提

10、高效率 复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: A、正确选择复合索引中的第一个字段,一般是选择性较好的且在 where 子句中常用的字段上; B、复合索引的几个字段经常同时以 AND 方式出现在 Where 子句中可以建立复合索引;否则单字段索引; C、如果复合索引中包含的字段经常单独出现在 Where 子句中,则分解为多个单字段索引;D、如果复合索引所包含的字段超过 3 个,那么仔细考虑其必要性,考虑减少复合的字段;E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引; 频繁 DML 的表,不要建立太多的索引; 不要将那些频繁修改的列作为索引列; 索引

11、的优缺点: 有点: 1. 创建唯一性索引,保证数据库表中每一行数据的唯一性 2. 大大加快数据的检索速度,这也是创建索引的最主要的原因 3. 加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。缺点: 1. 索引创建在表上,不能创建在视图上 2. 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加 3. 索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大 4. 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维

12、护,降低了数据的维护速度 23. 在 java 种怎样调用 oracle 存储过程; 在 java 中使用 CallableStatement 调用存储过程 创建需要的测试表:create table Test(tid varchar2(10),tname varchar2(10); 第一种情况:无返回值. create or replace procedure test_a(param1 in varchar2,param2 in varchar2) as begin insert into test value(param1,param2); end; Java 调用代码: package

13、 com.test; import java.sql.*; import java.io.*; import java.sql.*; public class TestProcA public TestProcA() public static void main(String args) ResultSet rs = null; Connection conn = null; CallableStatement proc = null; try Class.forName(“oracle.jdbc.driver.OracleDriver“); conn = DriverManager.get

14、Connection(“jdbc:oracle:thin:127.0.0.1:1521:test“, “test“, “test“); proc = conn.prepareCall(“ call test_a(?,?) “); proc.setString(1, “1001“); proc.setString(2, “TestA“); proc.execute(); catch(Exception e) e.printStackTrace(); finally try if(null!=rs) rs.close(); if(null!=proc) proc.close(); if(null!

15、=conn) conn.close(); catch(Exception ex) 第二种情况:有返回值的存储过程(返回值非列表). 存储过程为: create or replace procedure test_b(param1 in varchar2,param2 out varchar2) as begin select tname into param2 from test where tid=param1; end; Java 调用代码: package com.test; import java.sql.*; import java.io.*; import java.sql.*;

16、public class TestProcB public TestProcB() public static void main(String args) Connection conn = null; CallableStatement proc = null; try Class.forName(“oracle.jdbc.driver.OracleDriver“); conn = DriverManager.getConnection(“jdbc:oracle:thin:127.0.0.1:1521:test“, “test“, “test“); proc = conn.prepareC

17、all(“ call test_b(?,?) “); proc.setString(1, “1001“); proc.registerOutParameter(2, Types.VARCHAR); proc.execute(); System.out.println(“Output is:“+proc.getString(2); catch(Exception e) e.printStackTrace(); finally try if(null!=proc) proc.close(); if(null!=conn) conn.close(); catch(Exception ex) 第三种情

18、况:返回列表. 由于 oracle 存储过程没有返回值,它的所有返回值都是通过 out 参数来替代的,列表同样也不例外,但由于是集合,所以不能用一般的参数,必须要用 pagkage 了.要分两部分来写:create or replace package tpackage as type t_cursor is ref cursor; procedure test_c(c_ref out t_cursor); end ; create or replace package body tpackage as procedure test_c(c_ref out t_cursor) is begin

19、 open c_ref for select * from test; end test_c; end tpackage; Java 调用代码: package com.test; import java.sql.*; import java.io.*; import java.sql.*; public class TestProcB public TestProcB() public static void main(String args) Connection conn = null; CallableStatement proc = null; ResultSet rs = null; try Class.forName(“oracle.jdbc.driver.OracleDriver“);

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

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。