宜勉信息科技--SQL Server 开发人员应聘常被问的问题妙解汇总
SQL Server 开发人员应聘常被问的问题妙解汇总
作者:来源于:赛迪网技术社区发布时间:2007-11-28 9:10:42
SQL Server 开发人员应聘常被问的问题妙解汇总
目前在职场中很难找到非常合格的数据库开发人员。我的一个同事曾经说过:“SQL 开发是一门语言,它很
容易学,但是很难掌握。”
在面试应聘的 SQL Server 数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我
觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当您问到关于主键和外键的问
题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。
您能向我简要叙述一下 SQL Server 2000 中使用的一些数据库对象吗?
您希望听到的答案包括这样一些对象:表格、视图、用户定义的函数,以及存储过程;如果他们还能够提到
像触发器这样的对象就更好了。如果应聘者不能回答这个基本的问题,那么这不是一个好兆头。
什么是索引?SQL Server 2000 里有什么类型的索引?
任何有经验的数据库开发人员都应该能够很轻易地回答这个问题。一些经验不太多的开发人员能够回答这
个问题,但是有些地方会说不清楚。
简单地说,索引是一个数据结构,用来快速访问数据库表格或者视图里的数据。在 SQL Server 里,它
们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的
哪个(或哪些)字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集
索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表
格有多个非聚集索引。
NULL 是什么意思?
NULL(空)这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上跌跟头您也不要
觉得意外。
NULL 这个值表示 UNKNOWN(未知):它不表示“”(空字符串)。假设您的 SQL Server 数据库里有
ANSI_NULLS,当然在默认情况下会有,对 NULL 这个值的任何比较都会生产一个 NULL 值。您不能把任何值
与一个 UNKNOWN 值进行比较,并在逻辑上希望获得一个答案。您必须使用 IS NULL 操作符。
什么是主键?什么是外键?
主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一
的。外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表
格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。
什么是触发器?SQL Server 2000 有什么不同类型的触发器?
让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益的。
触发器是一种专用类型的存储过程,它被捆绑到 SQL Server 2000 的表格或者视图上。在 SQL
Server 2000 里,有 INSTEAD-OF 和 AFTER 两种触发器。INSTEAD-OF 触发器是替代数据操控语言(Data
Manipulation Language,DML)语句对表格执行语句的存储过程。例如,如果我有一个用于 TableA 的
INSTEAD-OF-UPDATE 触发器,同时对这个表格执行一个更新语句,那么 INSTEAD-OF-UPDATE 触发器里的
代码会执行,而不是我执行的更新语句则不会执行操作。
评论