文档介绍:数据库部分面试题
就业面试题库
─ 数据库部分
过程是SQL语句和可选控制流语句的预编译集合,以一个名称存储也将一直保持。
11. 游标的作用?如何知道游标已经到了最后?
游标用于定位结果集的行,通过判断全局变量@***@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后。
12. 触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。
13. 你在数据库编程过程中,面临的数据量有多大?如果有一个项目中每天有三张结构完全相同的表,一个365天天天如此,每张表记录
在100万条以上,现需要分页查询,根据这样的项目,采用你用过的分页原理,行吗?
这是考的是性能,一般的分页方式不行,遇到这样的题,你可以说,你需要了解更详细的业务,认真的研究一下,是可以的,当然,如果你认为你的方法可以,可以对这样的问题进行交流,等等。这样的题,说不好也行,不影响你的面试,主要是看一下你对问题的态度
14. 写出从数据库表Custom中查询No、Name、Num1、Num2并将Name以姓名显示、计算出的和以总和显示的SQL。
SELECT No, Name AS ‘姓名’, Num1 ,Num2,(Num1+Num2) AS ‘总和’ FROM Custom
15. 何为“事务处理”,谈谈你对它的理解。
事务处理是指一个单元的工作,这些工作要么全做,要么全部不做。作为一个逻辑单元,必须具备四个属性:自动性、一致性、独立性和持久性。自动性是指事务必须是一个自动的单元工作,要么执行全部数据的修改,要么全部数据的修改都不执行。一致性是指当事务完成时,必须使所有数据都具有一致的状态。在关系型数据库中,所有的规则必须应用到事务的修改上,以便维护所有数据的完整性。所有的
内部数据结构,在事务结束之后,必须保证正确。独立性是指并行事务的修改必须与其他并行事务的修改相互独立。一个事务看到的数据要么是另外一个事务修改这些事务之前的状态,要么是第二个事务已经修改完成的数据,但是这个事务不能看到正在修改的数据。
16. 数据库名词解析
批:是包含一个或多个 Transact-SQL 语句的组,从应用程序一次性地发送到 Microsoft SQL Server 执行。批作为一个整体执行,以GO命令结束。批处理是客户端作为一个单元发出的一个或多个 SQL 语句的集合。每个批处理编译为一个执行计划。
触发器:触发器是在对表进行插入、更新或删除操作时自动执行的存储过程,触发器通常用于强制业务规则,触发器可以确保数据的完整性和一致性。
事务:是用户定义的一个操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位(构成单一逻辑工作单元的操作集合)如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部
分。如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除
锁:是在多用户环境中对数据访问的限制封锁就是事务 T 在对某个数据对象(如表、记录等)操作之前,先向系统发出请求,对其加锁。加锁后事务 T 就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。(锁蕴含的基本概念是用户需要对表的排它访问)从程序员的角度看:分为乐观锁和悲观锁。乐观锁:完全依靠数据库来管理锁的工作。悲观锁:程序员自己管理数据或对象上的锁处理。
子查询:一个 SELECT 语句嵌套在另一个 SELECT 语句中。
索引:是一个数据库对象,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单,然后根据指定的排序次序排列这些指针 优点:提高查询执行的速度,强制实施数据的唯一性,提高表之间联接的速度。缺点:存储索引要占用磁盘空间,数据修改需要更长的时间,因为索引也要更新。
试图:是一种虚拟表,通常是作为来自一个或多个表的行或列的子集创建的。视图本质上讲,就是保存在数据库中的select查询,视图并不是数据库中存储的数据值的集合。对最终用户的好处:结果更容易理解,获得数据更容易。对开发人员的好处:限制数据检索更容易,维护应用程序更方便。
存储过程:使用一个名称存储的预编译T-SQL语句和流程控制语句的集合•由数据库开发人员或数据库管理员编写用来执行管理任务或应用复杂的业务规则 优点•执行速度更