java面试题
Posted MyAzhe0ci3
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java面试题相关的知识,希望对你有一定的参考价值。
数据库
1.动态查询如何实现?表的结构变化后,如果不需要修改程序,如何设计和实现查询?
答:将查询语句封装进存储过程中,通过调用储存过程实现动态调用;修改相应的存储过程即可不在修改程序的情况下实现查询。
2.如何优化数据库,如何提高数据库的性能?
答:优化数据库主要是优化查询语句,通过高性能的查询语句提高数据库的性能。
3.设计数据库应该注意那些问题?
答:首先应该满足三范式的要求,在一定程度上打破三范式的要求以提高数据库的性能。
4.什么是三范式?
答:
第一范式:每个字段只存储一个值。例如:职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话和一个家里电话)
第二范式:必须符合1NF的条件,且每一行都能被唯一的识别.将1NF转换成2NF的方法是添加主键。学号,课程名,成绩
第三范式:如果一个表满足了2NF,且不包含传递依赖性,则这个表就是第三范式
5.储存过程和函数的区别?
答:储存过程是用户定义的一系列sql语句的集合,涉及特定的表或其他对象的任务,用户可以调用存储过程,而函数是数据库已经定义好的方法,它接收参数并且返回某种类型的值。
6.主键和外键的区别?
答:主键是唯一,非空的.外键可以重复可以为空;外键和另外一张表的主键关联,不能创建对应表中不存在的外键。
7.什么是事务
答:事务是作为一个逻辑单元执行的一系列操作,一个事务必须有四个属性,简称为ACID(原子性,一致性,隔离性和持久性)
- 原子性:对于数据修改,要么全部执行,要么全部不执行
- 一致性:事务在完成之前,必须使所有的数据保持一致状态
- 隔离性:由并发事务所作的修改必须与任何其他并发事务所作的修改隔离.事务查看数据时所处的状态,要么时另一并发事务修改它之前的状态,要么时修改它之后的状态,事务不会查看中间状态的数据.这成为可串行性
- 持久性:事务完成之后,它对系统的影响是永久的.改修改即使出现系统 故障也将一直保持
8.游标的作用?
答:如何知道游标已经到了最后?游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后
9.触发器分为事前触发和事后触发,这两种触发有何区别?
答:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。
10.语句级触发和行级触发有何区别?
答:语句级触发器可以在语句执行钱或后执行,而行级触发在触发器所影响的每一行触发一次。
11.请列举一些当前流行的数据库引擎
答:SQL SERVER,ORACLE,BDE,mysql
12.写出从数据库表Custom中查询No,Name,Num1,Num2并将Name以姓名显示,计算出的和以总和显示的SQL
SELECT No,Name as ‘姓名’ ,Num1,Num2,(Num1+Num2) As ‘总和’ FROM Custom;
13.内联接
select a.id,a.xx,a.xx,b.id,b.xx,b.xx from a inner join b on a.id=b.id
14.批处理
答:是包含一个或多个Transact-SQL语句的组,从应用程序一次性发送到Microsoft SQL Server执行。批作为一个整体执行,以Go命令结束,批处理是客户端作为一个单元发送的一个或多个SQL语句的集合。每个批处理编译为一个执行计划。
15.触发器
答:
- 触发器是在对表进行插入,更新或删除操作时自动执行的储存过程
- 触发器通常用户强制业务规则
- 触发器可以确保数据的完整性和一致性
以上是关于java面试题的主要内容,如果未能解决你的问题,请参考以下文章
2020年1-6月份Java面试题总结,20多类1100道面试题含答案解析