数据库面试题

来源:互联网 发布:java如何实现线程 编辑:程序博客网 时间:2024/06/05 15:18
  1. 说出数据连接池的工作机制是什么?
    J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
    实现方式,返回的Connection是原始Connection的代理,代理Connection的close方法不是真正关连接,而是把它代理的Connection对象还回到连接池中。

  2. 大数据量下的分页解决方法。
    http://www.55118885.com/w/642485421.html

  3. JDBC中的PreparedStatement相比Statement的好处

  4. 用JDBC如何调用存储过程
    http://www.cnblogs.com/fjdingsd/p/5272923.html

  5. 注册Jdbc驱动程序的三种方式
    http://www.cnblogs.com/myvic/p/5441604.html

  6. 查出个人工资高于其所在部门平均工资的员工,列出这些员工的全部个人信息及该员工工资高出部门平均工资百分比。
    http://www.cnphp6.com/archives/21271

  7. Class.forName的作用?为什么要用?

  8. 一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决?
    http://blog.csdn.net/weitongyixun/article/details/7029131

  9. 查出比经理薪水还高的员工信息:
    http://www.voidcn.com/blog/weitongyixun/article/p-1691452.html

  10. 显示文章标题,发帖人、最后回复时间
    http://www.programgo.com/article/23862155284/

  11. 用一条SQL语句 查询出每门课都大于80分的学生姓名
    http://blog.csdn.net/u012110719/article/details/47138477

  12. 取出sql表中第31到40的记录(以自动增长ID为主键)
    sql server方案1:
    selecttop 10 * from t where id not in (select 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 iddesc
    mysql方案:select * from t order by idlimit 30,10
    oracle方案:select * from (select rownum r,* from t where r<=40) wherer>30

  13. union和union all有什么不同?

  14. 说出一些数据库优化方面的经验?

  15. 数据库三范式是什么?
    第一范式(1NF):字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式)
    数据库表中的字段都是单一属性的,不可再分。例如,姓名字段,其中的姓和名必须作为一个整体,无法区分哪部分是姓,哪部分是名,如果要区分出姓和名,必须设计成两个独立的字段。
    第二范式(2NF):
    第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。
    要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。
    第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。
    第三范式的要求如下:
    满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
    所以第三范式具有如下特征:
    1,每一列只有一个值
    2,每一行都能区分。
    3,每一个表都不包含其他表已经包含的非主关键字信息。
    例如,帖子表中只能出现发帖人的id,而不能出现发帖人的id,还同时出现发帖人姓名,否则,只要出现同一发帖人id的所有记录,它们中的姓名部分都必须严格保持一致,这就是数据冗余。

  16. 列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序

  17. 存储过程与触发器必须讲,经常被面试到?

  18. 根据部门号从高到低,工资从低到高列出每个员工的信息。

  19. 事务的ACID是指什么
    原子性(atomicity):一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可以只执行其中的一部分操作。
    一致性(consistency):数据库总是从一个一致性的状态转换到另一个一致性的状态。
    隔离性(isolation):通常来说,一个事务所做的修改在最终提交之前,对其他事务是不可见的。
    持久性(durability):一旦事务提交,则其所做的修改就会永久保存到数据库中