ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:93.50KB ,
资源ID:1790429      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1790429.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库面试题整理.doc)为本站会员(h****)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

数据库面试题整理.doc

1、数据库部分1、数据库三范式是什么 ?第一范式(1NF):字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式)数据库表中的字段都是单一属性的,不可再分。例如,姓名字段,其中的姓和名必须作为一个整体,无法区分哪部分是姓,哪部分是名,如果要区分出姓和名,必须设计成两个独立的字段。第二范式(2NF):第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。第二范式(2NF)要求实体的属性完全依赖于主关

2、键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。第三范式(3NF):满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。所以第三范式具有如下特征:1,每一列只有一个值2,每一行都能区分。3,每一个表都不包含其他表已经包含的非主关键字信息。例如,帖子表中只能出现发帖人的 id,而不能出

3、现发帖人的 id,还同时出现发帖人姓名,否则,只要出现同一发帖人 id 的所有记录,它们中的姓名部分都必须严格保持一致,这就是数据冗余。2、说出一些数据库优化方面的经验?1、关键字段建立索引。2、使用存储过程,它使 SQL 变得更加灵活和高效。 3、备份数据库和清除垃圾数据。4、SQL 语句语法的优化。5、清理删除日志。3、union 和 union all 有什么不同?UNION 在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表 UNION。这个 SQL 在运行时先取出两个

4、表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。而 UNION ALL 只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。从效率上说,UNION ALL 要比 UNION 快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用 UNION ALL,4.分页语句取出 sql 表中第 31 到 40 的记录(以自动增长 ID 为主键)sql server 方案 1:selecttop 10 * from t where id not in (select

5、top 30 id from t order by id ) orde byid sql server 方案 2:selecttop 10 * from t where id in (select top 40 id from t order by id) order by iddescmysql 方案:select * from t order by id limit 30,10oracle 方案:select * from (select rownum r,* from t where r30分页技术(直接利用 sql 语句进行分页,效率最高和最推荐的)mysql:sql = “selec

6、t * from articles limit “ +(pageNo-1)*pageSize + “,“ + pageSize; oracle: sql = “select * from “ +“(selectrownum r,* from “ + “(select* from articles order by postime desc)“ +“whererownum“ +(pageNo-1)*pageSize;sqlserver:sql = “select top 10 * from id not id(select top“ + (pageNo- 1)*pageSize + “id fr

7、om articles)“5.用一条 SQL 语句查询出每门课都大于 80 分的学生姓名name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90准备数据的 sql 代码:create table score(id int primary key auto_increment,namevarchar(20),subject varchar(20),score int);insert into score values (null,张三,语文,81), (null,张三,数学,75), (null,李四

8、, 语文,76), (null,李四,数学,90), (null,王五,语文,81),(null,王五, 数学,100),(null,王五 ,英语,90);A: select distinct name from score where name not in (selectdistinct name from score where score“ +pageSize*(pageNumber-1);13、用 JDBC 查询学生成绩单 ,把主要代码写出来(考试概率极大).Connection cn = null;PreparedStatement pstmt =null;Resultset rs

9、 = null;tryClass.forname(driveClassName);cn = DriverManager.getConnection(url,username,password); pstmt =cn.prepareStatement(“select score.* fromscore ,student “ +“wherescore.stuId = student.id and student.name = ?”);pstmt.setString(1,studentName); Resultset rs =pstmt.executeQuery(); while(rs.next()

10、system.out.println(rs.getInt(“subject”) + “ ” +rs.getFloat(“score”) );catch(Exception e)e.printStackTrace();finallyif(rs != null) tryrs.close() catch(exception e)if(pstmt != null)trypstmt.close()catch(exception e)if(cn != null) trycn.close() catch(exception e)14、这段代码有什么不足之处 ?try Connection conn = .;

11、 Statement stmt = .;ResultSet rs =stmt.executeQuery(“select * from table1“);while(rs.next() catch(Exception ex) 没有 finally 语句来关闭各个对象,另外,使用 finally 之后,要把变量的定义放在 try 语句块的外面,以便在 try 语句块之外的 finally 块中仍可以访问这些变量。15、说出数据连接池的工作机制是什么 ?J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙

12、。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。实现方式,返回的 Connection 是原始 Connection 的代理,代理 Connection 的 close 方法不是真正关连接,而是把它代理的 Connection 对象还回到连接池中。16、为什么要用 ORM? 和 JDBC 有何不一样?orm 是一种思想,就是把 object 转变成数据库中的记录,或者把数据库中的记录转变成objecdt,我们可以用 jdbc 来实现这种思想,其实,如果我们的项目是严格按照

13、oop 方式编写的话,我们的 jdbc 程序不管是有意还是无意,就已经在实现 orm 的工作了。现在有许多 orm 工具,它们底层调用 jdbc 来实现了 orm 工作,我们直接使用这些工具,就省去了直接使用 jdbc 的繁琐细节,提高了开发效率,现在用的较多的 orm 工具是 hibernate 。也听说一些其他 orm 工具,如 toplink,ojb 等。17.主键自动增长不同数据库之间的差异MySQL:使用 AUTO_INCREMENT 关键字来执行 auto-increment 任务。默认地,AUTO_INCREMENT 的开始值是 1,每条新纪录递增 1。要让 AUTO_INCRE

14、MENT 序列以其他的值起始,请使用下列 SQL 语法:ALTER TABLE Persons AUTO_INCREMENT=100 (创建时会自动添加一个唯一的值)SQL Server:使用 IDENTITY 关键字来执行 auto-increment 任务,默认地,IDENTITY 的开始值是 1,每条新纪录递增 1。要规定 “P_Id“ 列以 20 起始且递增 10,请把 identity 改为 IDENTITY(20,10) (创建时会自动添加一个唯一的值)Oracle:必须通过 sequence 对创建 auto-increment 字段(该对象生成数字序列)。18、sqlserve

15、r 与 oracle 的区别:sql server 与 oracle 的区别:-1.数据类型不同。-sql server 的数据类型: int ,smallint ,char,varchar,nchar,nvarchar,ntext,datetime,smalldatetime,money,decima,float,bit-oracle 的数据类型:number(p,s),char,varchar2,Date,LOB -2.获得当前系统时间的函数不同。-sql server :getdate()-oracle:sysdate-例如:设定日期格式的函数:to_char(sysdate,yyy-m

16、m-dd);-3.在 oracle 中没有默认约束的说法-sql server 中添加默认约束:alter table talbe_name add DF_table_name default(男) for sex;-oracle 中添加默认值:alter table table_name modify(sex default(男);-4.连接变量和字符串的方式不一样-sql server 中连接:使用“+”连接,例如:print aaaa+name;-oracle 中连接:使用“|”连接,例如:dbms_output.put_line(aaa|name);-name 为变量-5.oracle

17、 没有 identity 自动增长列,而是使用序列实现增长-sql server 自动增长:在表的主键列中可直接使用 identity(1,1)实现增长-oracle 使用序列自动增长:create sequence se_id start with 1increment by 1-使用序列实现自动增长:se_id.nextval-6.条件语句 ifelse的语法不同-sql server 中:if 条件beginendelsebeginend -oracle 中:if 条件 1 then;elsif 条件 2 then;else;end if;-7.case 语句的语法不同-sql server 中:-select .case.(else).end.语句

Copyright © 2018-2021 Wenke99.com All rights reserved

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

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

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