数据库面试会问什么问题?

目前职场上很难找到非常合格的数据库开发人员。有人说:“sql开发是一门语言,学起来容易,掌握起来难。”

在采访sql Server数据库开发人员时,我使用了一组标准的基准技术问题。以下问题是我认为真正能帮助淘汰不合格考生的问题。它们是按照从易到难的顺序排列的。当你问关于主键和外键的问题时,后面的问题是非常难的,因为答案可能更难解释和说明,尤其是在面试中。

能否简单描述一下sql Server 2000中使用的一些数据库对象?

你想听到的答案包括表、视图、自定义函数、存储过程等对象;如果他们也能提到触发器之类的对象就更好了。如果候选人不能回答这个基本问题,这不是一个好迹象。

null是什么意思?

null的值在数据库界是一件非常困难的事情,所以不要惊讶很多考生会在这个问题上栽跟头。

null的值表示未知:它不表示" "(空字符串)。假设您的sql Server数据库中有ANSI_nullS,当然默认情况下是这样的。任何null值的比较都会产生一个null值。你不能拿任何一个值和一个未知值比较,逻辑上期待一个答案。您必须使用IS null运算符。

什么是指数?sql Server 2000中有哪些种类的索引?

任何有经验的数据库开发人员都应该能够轻松回答这个问题。一些没有经验的开发者可以回答这个问题,但是有些地方会不清楚。

简单地说,索引是一种数据结构,用于快速访问数据库表或视图中的数据。在sql Server中,它们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级别保存数据。这意味着无论表的哪个(或哪些)字段存在于聚集索引中,这些字段都将按顺序存储在表中。由于这种排序,每个表只有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。该行标识符是指向磁盘上数据的指针。它允许每个表有多个非聚集索引。

什么是主键?什么是外键?

主键是表中的字段,只用来定义表中的行;主键中的值总是唯一的。外键是用于在两个表之间建立关系的约束。这种关系通常涉及一个表中的主键字段和另一个表中的一系列连接字段(尽管可能是同一个表)。那么这些连接的字段就是外键。

什么是触发器?sql Server 2000中有哪些不同类型的触发器?

了解可用的触发器类型以及如何实现它们对未来的数据库开发人员非常有益。

触发器是一种特殊类型的存储过程,它绑定到sql Server 2000的表或视图。在sql Server 2000中,有两种触发器,而不是-OF和after。INSTEAD-OF触发器是一个存储过程,用于对表执行语句,而不是数据操作语言(dml)语句。例如,如果我有一个针对TableA的INSTEAD-OF-update触发器,并且同时对该表执行一条UPDATE语句,INSTEAD-OF-UPDATE触发器中的代码将会执行,但是我执行的UPDATE语句将不会执行该操作。

After触发器在数据库中使用dml语句后执行。这些类型的触发器对于监视数据库表中发生的数据更改非常有用。

如何确保具有名为Fld1的字段的TableB表只有Fld1字段中的那些值,并且这些值也在名为TableA的表的Fld1字段中?

对于这个关系相关的问题,有两种可能的答案。第一个答案(也是您想听到的答案)是使用外键限制。外键限制用于维护引用的完整性。它用于确保一个表中的一个字段只保存已经在不同(或相同)表的另一个字段中定义的值。该字段是候选键(通常是另一个表的主键)。

另一个答案是扳机。触发器可以用于以另一种方式确保与限制相同的效果,但是它们非常难以设置和维护,并且它们的性能通常很差。为此,Microsoft建议开发人员使用外键限制而不是触发器来维护引用的完整性。

在一个投入使用的在线事务表上有太多索引需要什么样的性能考虑?

您正在寻找与数据处理相关的候选人。表中的索引越多,数据库引擎更新、插入或删除数据所需的时间就越长,因为在进行数据操作时还必须维护索引。

您可以使用什么来确保表中的字段只接受特定范围内的值?

这个问题可以用很多方法回答,但只有一个答案是“好”。你想听到的答案是Check限制,它是在数据库表中定义的,用来限制该列的值的输入。

触发器也可以用来限制数据库表中字段的可接受值,但是这种方法要求在表中定义触发器,这在某些情况下可能会影响性能。因此,微软建议使用检查限制而不是其他方式来限制域的完整性。

& ltb?返回参数和输出参数有什么区别?& gt如果候选人能正确回答这个问题,那么他的机会非常大,因为这说明他们有使用存储过程的经验。

return参数始终由存储过程返回,用于指示存储过程是成功还是失败。返回参数总是int数据类型。

输出参数明确要求由开发人员指定,它可以返回其他类型的数据,如字符和数值。对于可用作输出参数的数据类型有一些限制。在存储过程中可以使用多个输出参数,但只能使用一个返回参数。

什么是相关子查询?如何使用这些查询?

更有经验的开发人员将能够准确地描述这种类型的查询。

相关子查询是一种特殊类型的查询,包含子查询。查询中包含的子查询实际上会请求外部查询的值,从而形成类似于循环的情况。& lt/b?返回参数和输出参数有什么区别?& gt