最新JAVA面试题总结之数据库.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、MySQL的delete与truncate区别? 回答:delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行回滚操作,不清空AUTO_INCREMENT记录数; truncate则直接将表删除并重新建表,不会把单独的删除操作记录记入日志保存,删除行是不能恢复的,AUTO_INCREMENT将置为0,效率比delete高。 2、MySQL的存储过程是什么? 回答:存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它; 创建存储过程:”pr_add”是个简单的MySQL存储过程,这个MySQL存储过程有两个int类型的输入参数”a”,”b”,返回这两个参数的和。 1)drop procedure if exists pr_add; 2)计算两个数之和 create procedure pr_add( a int , b int )begin declare c int; if a is null then set a = 0; end if; if a is null then set b = 0; end if; set c = a+b; select c as sum ; 3、谈谈你对索引的理解? 回答:索引是对数据库中一对多个列值的排序,帮助数据库高效获取数据的数据结构。假如我们用类比的方法,数据库中的索引就相当于书籍中的目录一样,当我们想找到书中的某个知识点,我们可以直接去目录中找而不是在书中每页的找,但是这也抛出了索引的一个缺点,在对数据库修改的时候要修改索引,导致时间变多。 索引分为:普通索引,唯一索引,主键索引,全文索引 优点:加快检索速度;唯一索引确保每行数据的唯一性;在使用索引的过程可以优化隐藏器,提高系统性能 缺点:插入删除,修改,维护速度下降;占用物理和数据空间; 4、简单描述一下数据库的事务? 回答:应用的场景:存在并发数据访问时才需要事务 ACID四大特性:a)原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间的某个环节。任何一项操作的失败都会导致整个事务的失败; b)一致性:在事务开始之前和事务结束之后,数据库的完整性约束没有被破坏; c)隔离性:并发执行的事务彼此无法看到对方的中间状态; d)持久性:在事务完成以后,该事务所对数据库所操作的更改便持久的保存在数据库之中,并不会被回滚。 问题:a)脏读:一个事务读取到另一个事务未提交的数据 b)不可重复读:一个事务中两次查询的数据不一致 -->一个事务读到了另一个事务,已经提交数据(update 操作) c)虚读(幻读):一个事务中两次查询的数据不一致 -->一个事务读到了另一个事务,已经提交数据(insert 操作) 隔离级别:安全从低到高,性能从高到低; a)读未提交:也叫脏读,是事务可以读取其他事务未提交的数据。—>未解决任何问题 b)读已提交:在事务未提交之前所做的修改其它事务是不可见的。—>解决脏读问题 c)可重复读:保证同一个事务中的多次相同的查询的结果是一致的。—>解决脏读,不可重复读的问题 d)可串行化:保证读取的范围内没有新的数据插入,比如事务第一次查询得到某个范围的数据,第二次查询也同样得到了相同范围的数据,中间没有新的数据插入到该范围中。—>解决脏读,不可重复读,虚读(幻读)问题。 常用数据库默认隔离级别: MySQL:可重复读;Oracle:读已提交;SQLServe:读已提交。r 5、Oracle是怎么样分页的? 回答:Oracle中使用rownum来进行分页,这个是效率最好的分页方法,hibernate也是使用rownum来进行Oracle分页的; select * from (select round r,a from tabName where round <= 20) where r > 10 6、说说Oracle中经常使用到得函数? 回答:Length长度 、lower 小写、upper 大写、to_date 转化日期、to_char 转化字符,Ltrim 去左边空格、substr 取字符串、add_month 增加或者减掉月份、to_number 转变为数字 7、谈谈你对Oracle高水位的理解? 回答:所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称为"high water mark"或HWM。这个HWM是一个标记,用来说明已经有多少没有使用的数据块分配给这个segment。HWM通常增长的幅度为一次5个数据块,原则上HWM只会增大,不会

文档评论(0)

pehalf + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7201060146000004

1亿VIP精品文档

相关文档