存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。
3.存储过程如何调用?
1、可以用一个命令对象来调用存储过程。
2、可以供外部程序调用,比如:java程序。
4.存储过程的优缺点?
优点:
1、存储过程是预编译过的,执行效率高。
2、存储过程的代码直接存放于数据库中,通过存储过程名直接调用,减少网络通讯。
3、安全性高,执行存储过程需要有一定权限的用户。
4、存储过程可以重复使用,可减少数据库开发人员的工作量。
缺点:
移植性差
5.什么是索引?
索引是对数据库表中一个或多个列的值进行排序的结构。
6.索引的优缺点?
优点:
1、大大加快数据的检索速度;
2、创建唯一性索引,保证数据库表中每一行数据的唯一性;
3、加速表和表之间的连接;
4、在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。
缺点:
1、减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
2、索引需要占用数据表以外的物理存储空间
3、创建索引和维护索引要花费一定的时间
4、当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。
7.什么样的字段适合建索引
唯一、不为空、经常被查询的字段
8.索引类型有哪些?
逻辑上:
Single column 单行索引
Concatenated 多行索引
Unique 唯一索引
NonUnique 非唯一索引
Function-based 函数索引
Domain 域索引
物理上:
Partitioned 分区索引
NonPartitioned 非分区索引
B-tree :
Normal 正常型B树
Rever Key 反转型B树
Bitmap 位图索引
9.游标是什么?
游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。
10.什么叫视图?
视图:是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改会影响基本表。它使得我们获取数据更容易,相比多表查询
11.视图的优缺点
优点:
1、对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。 2、用户通过简单的查询可以从复杂查询中得到结果。
3、维护数据的独立性,试图可从多个表检索数据。
4、对于相同的数据可产生不同的视图。
缺点:
查询视图时,必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么就无法更改数据。
12.列举几种表连接方式,有什么区别?
内连接、自连接、外连接(左、右、全)、交叉连接 内连接:只有两个元素表相匹配的才能在结果集中显示。 外连接: 左外连接:左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。 右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。 全外连接:连接的表中不匹配的数据全部会显示出来。 交叉连接: 笛卡尔效应,显示的结果是链接表数的乘积。
13.主键和外键的区别?
主键在本表中是唯一的、不可唯空的,外键可以重复可以唯空;外键和另一张表的主键关联,不能创建对应表中不存在的外键。
14.在数据库中查询语句速度很慢,如何优化?
1、建索引
2、减少表之间的关联
3、优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据 量大的表排在前面
4、简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据
5、尽量用PreparedStatement来查询,不要用Statement
题外话
不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊
这里我为大家准备了一些我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~
欢迎评论区讨论。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~
[外链图片转存中…(img-QrzYVSvr-1715163568771)]
欢迎评论区讨论。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!