更新时间:2020-02-03 17:14:44 来源:极悦 浏览2340次
数据库的知识,对于开发工程师来讲,也是同样重要,是开发过程中的重中之重,很多的业务逻辑,比如:报表模块等,只要sql语句能写出来,就相当于完成大部分的功能了,以下为关于数据库在面试过程中常见的10道题,供参考。
1:触发器的作用?
·触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的。
·它可以强化约束,来维护数据的完整性和一致性。
·可在写入数据表前,强制检验或转换数据。
·触发器发生错误时,异动的结果会被撤销。
·部分数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器。
·可依照特定的情况,替换异动的指令(INSTEADOF)。
2:触发器的限制有哪些?
·一个表最多只能有三个触发器,insert、update、delete
·每个触发器只能用于一个表
·不能对视图、临时表创建触发器
·Truncatetable能删除表,但不能触发触发器
3:什么是存储过程?用什么来调用?
·存储过程存在于大型数据库系统中,是一个预编译的SQL语句(为了完成特定功能的SQL语句集),经过第一次编译后再次调用不需要再次编译。
-优点是:
-允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。
-如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。
-减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
-安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。
-调用:
-1)可以用一个命令对象来调用存储过程。
-2)可以供外部程序调用,比如:java程序。
4:索引的作用?它的优缺点是什么?
·索引就一种特殊的查询表,数据库的搜索可以利用它加速对数据的检索。
·它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。
·索引可以是唯一的,创建索引允许指定单个列或者是多个列。
·缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
5:什么样的字段适合建索引?
·唯一
·主、外键
·不为空
·表之间的关联字段
·查询比较频繁的字段
6:索引类型有哪些?
Singlecolumn单行索引
Concatenated多行索引
Unique唯一索引
NonUnique非唯一索引
Function-based函数索引
Domain域索引物理上:
Partitioned分区索引
NonPartitioned非分区索引
B-tree:
Normal正常型B树
ReverKey反转型B树
Bitmap位图索引
7:什么是事务?什么是锁?
-事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组
如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。
为了确保要么执行,要么不执行,就可以使用事务。
要将有组语句作为事务考虑,就需要通过ACID测试:
即原子性,一致性,隔离性和持久性。
-锁:锁是实现事务的关键,锁可以保证事务的完整性和并发性。
与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。
当然锁还分级别的,比如页级锁、行级锁等。
8:什么叫视图?游标是什么?
-视图:是一种虚拟的表,具有和物理表相同的功能。
可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。
对视图的修改会影响基本表。它使得我们获取数据更容易,相比多表查询。
-游标:是对查询出来的结果集作为一个单元来有效的处理。
游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。
可以对结果集当前行做修改。
一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。
9:视图的优缺点?
-优点:
-对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。
-用户通过简单的查询可以从复杂查询中得到结果。
-维护数据的独立性,试图可从多个表检索数据。
-对于相同的数据可产生不同的视图。
-缺点:
-性能:查询视图时,必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,那么就无法更改数据
10:列举几种表连接方式,有什么区别?
-内连接、自连接、外连接(左、右、全)、交叉连接
-内连接:只有两个元素表相匹配的才能在结果集中显示。
-外连接:
-左外连接:左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。
-右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。
-全外连接:连接的表中不匹配的数据全部会显示出来。
-交叉连接:笛卡尔效应,显示的结果是链接表数的乘积。
以上就是极悦注册机构小编介绍的“收藏版Java初级面试题数据库”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
相关推荐
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习