数据库面试题整理.doc

数据库面试题整理.doc

ID:51835696

大小:93.50 KB

页数:14页

时间:2020-03-16

数据库面试题整理.doc_第1页
数据库面试题整理.doc_第2页
数据库面试题整理.doc_第3页
数据库面试题整理.doc_第4页
数据库面试题整理.doc_第5页
资源描述:

《数据库面试题整理.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

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

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

4、。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。而UNIONALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。从效率上说,UNIONALL要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNIONALL,4.分页语句取出sql表中第31到40的记录(以自动增长ID为主键)sqls

5、erver方案1:selecttop10*fromtwhereidnotin(selecttop30idfromtorderbyid)ordebyidsqlserver方案2:selecttop10*fromtwhereidin(selecttop40idfromtorderbyid)orderbyiddescmysql方案:select*fromtorderbyidlimit30,10oracle方案:select*from(selectrownumr,*fromtwherer<=40)wherer>30分页技术(直接利用sql语句进行分页,效率

6、最高和最推荐的)mysql:sql="select*fromarticleslimit"+(pageNo-1)*pageSize+","+pageSize;oracle:sql="select*from"+"(selectrownumr,*from"+"(select*fromarticlesorderbypostimedesc)"+"whererownum<="+pageNo*pageSize+")tmp"+"wherer>"+(pageNo-1)*pageSize;sqlserver:sql="selecttop10*fromidnotid(s

7、electtop"+(pageNo-1)*pageSize+"idfromarticles)"5.用一条SQL语句查询出每门课都大于80分的学生姓名namekechengfenshu张三语文81张三数学75李四语文76李四数学90王五语文81王五数学100王五英语90准备数据的sql代码:createtablescore(idintprimarykeyauto_increment,namevarchar(20),subjectvarchar(20),scoreint);insertintoscorevalues(null,'张三','语文',81)

8、,(null,'张三','数学',75),(null,'李四','语文',76),(null,'李四','数学',90),

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。