[面试的问题及回答思路]面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。对应聘者而言,了解这些问题背后的“猫腻”至关重要。本文对面试中经常出现的一些典型...+阅读
目前在职场中很难找到非常合格的数据库开发人员。有人说:“SQL开发是一门语言,它很容易学,但是很难掌握。” 在面试应聘的SQL Server数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当你问到关于主键和外键的问题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。
你能向我简要叙述一下SQL Server 2000中使用的一些数据库对象吗? 你希望听到的答案包括这样一些对象:表格、视图、用户定义的函数,以及存储过程;如果他们还能够提到像触发器这样的对象就更好了。如果应聘者不能回答这个基本的问题,那么这不是一个好兆头。 NULL是什么意思? NULL(空)这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上跌跟头您也不要觉得意外。
NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。假设您的SQL Server数据库里有ANSI_NULLS,当然在默认情况下会有,对NULL这个值的任何比较都会生产一个NULL值。您不能把任何值与一个 UNKNOWN值进行比较,并在逻辑上希望获得一个答案。您必须使用IS NULL操作符。 什么是索引?SQL Server 2000里有什么类型的索引? 任何有经验的数据库开发人员都应该能够很轻易地回答这个问题。
一些经验不太多的开发人员能够回答这个问题,但是有些地方会说不清楚。 简单地说,索引是一个数据结构,用来快速访问数据库表格或者视图里的数据。在SQL Server里,它们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按顺序被保存在表格。
由于存在这种排序,所以每个表格只会有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。 什么是主键?什么是外键? 主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。
这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。 什么是触发器?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触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。 AFTER触发器要在DML语句在数据库里使用之后才执行。
这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。 您如何确一个带有名为Fld1字段的TableB表格里只具有Fld1字段里的那些值,而这些值同时在名为TableA的表格的Fld1字段里? 这个与关系相关的问题有两个可能的答案。第一个答案(而且是您希望听到的答案)是使用外键限制。外键限制用来维护引用的完整性。它被用来确保表格里的字段只保存有已经在不同的(或者相同的)表格里的另一个字段里定义了的值。
这个字段就是候选键(通常是另外一个表格的主键)。 另外一种答案是触发器。触发器可以被用来保证以另外一种方式实现与限制相同的作用,但是它非常难设置与维护,而且性能一般都很糟糕。由于这个原因,微软建议开发人员使用外键限制而不是触发器来维护引用的完整性。 对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑? 你正在寻找进行与数据操控有关的应聘人员。
对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。 你可以用什么来确保表格里的字段只接受特定范围里的值? 这个问题可以用多种方式来回答,但是只有一个答案是“好”答案。您希望听到的回答是Check限制,它在数据库表格里被定义,用来限制输入该列的值。
触发器也可以被用来限制数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到性能。因此,微软建议使用Check限制而不是其他的方式来限制域的完整性。如果应聘者能够正确地回答这个问题,那么他的机会就非常大了,因为这表明他们具有使用存储过程的经验。 返回参数总是由存储过程返回,它用来表示存储过程是成功还是失败。
返回参数总是INT数据类型。 OUTPUT参数明确要求由开发人员来指定,它可以返回其他类型的数据,例如字符型和数值型的值。(可以用作输出参数的数据类型...
延伸阅读:
英语问题请帮忙指点!应聘外贸公司的销售助理内勤面试官要经理在: 电话响:接起:good morning / afternoon ,evening ,..........company ! 客人:good morning , may i speak to mr .../ ms .... 你:may i know who is that speaking ? 客...
现实社会中怎么样才在面试的时候表现的最为出色呢准时现身耐心等候 准时是第一原则。这是几乎所有的面试考官都强调的,如果你迟到,等于是让对方还没见到你,就先行倒扣了几分。留下不好印象不说,你一个人迟到甚至可能影响其他考...
银行校园招聘面试正常有哪些题目您好,银行秋招面试形式是:直接发问型(类似半结构化面试);案例讨论型(类似无领导小组讨论面试)。各分行面试形式不一,一般会有两次面试,两次面试形式一般为无领导小组讨论和半结构化面...
ORACLE数据库面试题1. update t set logdate=to_date('2003-01-01','yyyy-mm-dd') where logdate=to_date('2001-02-11','yyyy-mm-dd'); 2. select * from t where name in (select name from...
oracle数据库面试题如下求解!1 product主键id 顾客表主键acid 商品交易表为联合主键(acid+id),同时acid和id分别是顾客表和商品表的外键 2 select b.acname,b.acadress from product a,customer b,order c...
急求Sql Server数据库SQL语句面试题What are two methods of retrieving SQL? What cursor type do you use to retrieve multiple recordsets? What is the difference between a “where” clause and a “h...
一道关于数据库索引的面试题什么数据库? nal 是什么函数? 1,不等于基本不会用索引 但是不确定当0基数比较大 ,而结果集基数比较小的情况下 有没有可能走索引 2,等于的话如果有索引 ,而且结果集比较小的话应该...
数据库面试题有四个表Student表 Course表 Score表 Teacher表1.select 英语.学号from Score 英语left join ( select 学号,课程代码,成绩 from Score where 课程代码='数学课程代码') as 数学on 英语.学号=数学.学号where 英语.课程代码=...
Oracle数据库面试题学校的考试求答案求思路1. select decode(性别字段,'A','男','B','女','未知') as 性别 from 表名 (通过decode函数得到想要的值) 2. select 购物人 from 购物信息 having count(购物人||商品名称)>1 (count求...