91.如何提升数据查询的效率?

1.首先检查表的结构是否合理,
因为采用多表查询的时候,
看主外键的引用关系是否适当.
如果不适当则重新设置表结构.
如果是应用中的系统,
则不需要更改表的字段,
只更改主外键关系.
如果数据库中有较多的数据,
还应采用索引提高查询效率.2.利用索引(index)
对查询进行优化,
index可以避免对表数据的全面扫描,
当你以某个字段建立一个索引的时候,
数据库就会生成一个索引页,
索引页不单单保存索引的数据,
还保存了索引在数据库的
具体的物理地址,
能够很快的定位查找到要找的记录3. 如果表的列很少,
不适合建索引.
表数据很少查询,
而经常做insert、delete、update动作,
不适合建所以。
因为Oracle需要对索引额外维护。
建立索引后,select会快,
当执行过多次的insert,delete,update后,
会出现索引碎片,
影响查询速度,我
们应该对索引进行重组
(即drop掉索引重新create)4.索引的类型分为:B-树索引:
适合于大量的增、删、改,
大多数数据的索引默认类型。位图索引:
适合于决策支持系统HASH索引、分区索引等。

92.什么是数据库事务?

事务是作为一个逻辑单元
执行的一系列操作,
要么一起成功,要么一起失败。一个逻辑工作单元必须有四个属性,
称为 ACID:
原子性、
一致性、
隔离性
持久性
属性,
只有这样才能成为一个事务。原子性 :
事务必须是原子工作单元;
对于其数据修改,
要么全都执行
,要么全都不执行。一致性 :
事务在完成时,
必须使所有的数据都保持一致状态。
在相关数据库中,
所有规则都必须应用于事务的修改,
保持所有数据的完整性。
事务结束时,
所有的内部数据结构
(如 B 树索引或双向链表)
都必须是正确的。隔离性 :
由并发事务所作的修改
必须与任何其它并发事务
所作的修改隔离。
事务查看数据时数据所处的状态,
要么另一并发事务修改它之前的状态,
要么是另一事务修改它之后的状态,
事务不会查看中间状态的数据。
这为可串行性,
因为它能够重新装载起始数据,
并且重播一系列事务,
以使数据结束时的状态
与原始事务执的状态相同。持久性 :
事务完成之后,
它对于系统的影响是永久性的。
该修改即使出现系统故障也将一直保持。

93.什么是数据库事务的隔离级别?

多个线程开启各自事务操作数据库中数据时,数
据库系统要负责隔离操作,
以保证各个线程在获取数据时的准确性。数据库共定义了四种隔离级别:
Serializable:(串行化)
可避免脏读、
不可重复读、
虚读情况的发生Repeatable read:(可重复读)可避免脏读、
不可重复读情况的发生。Read committed:(读已提交)
可避免脏读情况发生。Read uncommitted:(读未提交)
最低级别,
以上情况均无法保证。
  

94.如何删除表中的重复数据,只保留一条记录?

1、查找表中多余的重复记录,
重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (
select peopleId from people
group by peopleId
having count(peopleId) > 1
) 2、删除表中多余的重复记录, 重复记录是根据单个字段(peopleId)来判断,
只留有rowid最小的记录 delete from people where peopleName in ( select peopleName from people group by peopleName having count(peopleName) > 1 ) and peopleId not in ( select min(peopleId) from people group by peopleName having count(peopleName)>1 ) 3、查找表中多余的重复记录(多个字段) select * from vitae a where (a.peopleId,a.seq) in ( select peopleId,seq from vitae group by peopleId,seq having count(*) > 1 ) 4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 delete from vitae a where (a.peopleId,a.seq) in ( select peopleId,seq from vitae group by peopleId,seq having count(*) > 1 ) and rowid not in ( select min(rowid) from vitae group by peopleId,seq having count(*)>1 ) 5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录 select * from vitae a where (a.peopleId,a.seq) in ( select peopleId,seq from vitae group by peopleId, seq having count(*) > 1 ) and rowid not in ( select min(rowid) from vitae group by peopleId, seq having count(*)>1 ) 6.消除一个字段的左边的第一位: update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%' 7.消除一个字段的右边的第一位: update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村' 8.假删除表中多余的重复记录(多个字段), 不包含rowid最小的记录 update vitae set ispass=-1 where peopleId in ( select peopleId from vitae group by peopleId )

  

95.如何通过sql语句完成分页?

客户端通过传递start(页码),
PageSize(每页显示的条数)两个参数
去分页查询数据库表中的数据,
那我们知道MySql数据库提供了
分页的函数limit m,n,
但是该函数的用法和我们的需求不一样,
所以就需要我们根据实际情况
去改写适合我们自己的分页语句,
具体的分析如下:比如:
查询第1条到第10条的数据的sql是:
select * from table limit 0,10;
对应我们的需求就是查询第一页的数据:
select * from table limit (1-1)*10,10;查询第10条到第20条的数据的sql是:
select * from table limit 10,20;
对应我们的需求就是查询第二页的数据:
select * from table limit (2-1)*10,10;查询第20条到第30条的数据的sql是:
select * from table limit 20,30;
对应我们的需求就是查询第三页的数据:
select * from table limit (3-1)*10,10;二:通过上面的分析,
可以得出符合我们自己需求的分页
sql格式是:
select * from table limit (start-1)*PageSize,PageSize;
其中start是页码,
PageSize是每页显示的条数。

  

转载于:https://www.cnblogs.com/gxq666/p/10018536.html

撩课-Java每天5道面试题第12天相关推荐

  1. Java每日一讲讲什么好_撩课-Java每天10道面试题第1天

    1.简述JDK.JRE.JVM? 一.JDK JDK(Java Development Kit) 是整个JAVA的核心, 包括了Java运行环境(Java Runtime Envirnment), 一 ...

  2. 撩课-Java每天5道面试题第11天

    86.如何获得高效的数据库逻辑结构? 从关系数据库的表中 删除冗余信息的过程 称为数据规范化, 是得到高效的关系型数据库表的逻辑结构 最好和最容易的方法.规范化数据时应执行以下操作: 1.将数据库的结 ...

  3. 撩课-Python-每天5道面试题-第2天

    一. 简述编程过程中, 注释的作用? (1) 方便开发人员自己理清楚代码思路因为开发人员在拿到一个需求时, 首先应该思考的是如何将需求问题, 分解成具体的实施步骤; 第一步干啥, 第二步干啥, 第三步 ...

  4. Java每天5道面试题,跟我走,offer有!(八)

    2019独角兽企业重金招聘Python工程师标准>>> 76.XML技术的作用? XML技术用于数据存储. 信息配置. 数据交换三方面. 可以将数据存储在XML中, 通过节点. 元素 ...

  5. 撩课-Java面试宝典-第十二篇

    学习地址: 撩课-JavaWeb系列1之基础语法-前端基础 撩课-JavaWeb系列2之XML 撩课-JavaWeb系列3之MySQL 撩课-JavaWeb系列4之JDBC 撩课-JavaWeb系列5 ...

  6. java 面试题合集_撩课-Java面试题合辑1-50题

    1.简述JDK.JRE.JVM? 一.JDK JDK(Java Development Kit) 是整个JAVA的核心, 包括了Java运行环境(Java Runtime Envirnment), 一 ...

  7. 阿里蚂蚁金服Java岗330道面试题(性能调优+微服务+并发编程+开源框架+分布式)

    前言 2019年还有不到2个月的时间就结束了,这一你,你收获了多少?  前段时间一直有粉丝问我,有没有今年一些大厂Java面试题总结?最新抽时间整理了一些,分享给大家,大家一起共享学习! 一.性能调优 ...

  8. 撩课-Java面试宝典-第八篇

    71.jsp有哪些内置对象?作用分别是什么? Page, pageContext, request, response, session, application, out, config, exce ...

  9. 撩课-Java面试宝典-第五篇

    41.Iterator.ListIterator 和 Enumeration的区别? 迭代器是一种设计模式, 它是一个对象, 它可以遍历并选择序列中的对象, 而开发人员不需要了解 该序列的底层结构. ...

最新文章

  1. 吴恩达《Machine Learning》精炼笔记 9:PCA 及其 Python 实现
  2. spring核心功能包中已经包含了cglib功能
  3. 静态属性_Java面试题—内部类和静态内部类的区别
  4. 几万条数据的excel导入到mysql_【记录】2万多条数据的Excel表格数据导入mysql数据库...
  5. java第七章jdbc课后简答题_javaEE简答题答案
  6. 初识Scrapy,在充满爬虫的世界里做一个好公民
  7. map在Sql中的传参 模糊查询limit分页
  8. 抖音快手vbs表白代码大全(操作方法)
  9. html5 逐帧播放 代码,html5-video – 使用媒体源扩展进行逐帧解码
  10. Python3教程--和小名一起学Python
  11. 小白积累本:stata矩阵计算初级操作的汇总(更新ing)
  12. 什么样的项目算是成功的?项目目标有什么特点?
  13. python妹子图软件下载_python3下载妹子图,你懂的。
  14. 计算机毕业设计Java基于的药品销售系统(源码+系统+mysql数据库+lW文档)
  15. vue做移动端适配最佳解决方案,亲测有效
  16. 【代码小记】赏析《RAFT:运动属性的光流感知》
  17. 【转】GitHub 优秀的 Android 开源项目
  18. CSS 文字下划线间距
  19. 《UE4游戏开发》之 《画质控制》
  20. 8255芯片实现7段LED显示器

热门文章

  1. bluemix java_Bluemix 基础:将 SQL 数据库添加到您的 Java 应用程序中
  2. 中使用js修改变量值_谈一谈css-in-js在React项目中的使用
  3. PoW 本质上是个去中心化的时钟
  4. RNN-循环神经网络-02Tensorflow中的实现
  5. 【源码解读】Screencap源码分析-基础篇
  6. CVE-2014-3153笔记
  7. 画活动图教程_二次元人物头发怎么画?画好头发有什么技巧?
  8. 2022.3.26八仙花
  9. BZOJ-1880-Elaxia的路线-SDOI2009-SPFA+拓扑排序
  10. Visual BERT论文的简单汇总