`
reb12345reb
  • 浏览: 47902 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SQL数据库应聘人员面试时经常被问的问题

阅读更多

目前在职场中很难找到非常合格的数据库开发人员。有人说:“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参数明确要求由开发人员来指定,它可以返回其他类型的数据,例如字符型和数值型的值。(可以用作输出参数的数据类型是有一些限制的。)您可以在一个存储过程里使用多个OUTPUT参数,而您只能够使用一个返回参数。

 

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

 

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

 

相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。

 

分享到:
评论

相关推荐

    SQL数据库应聘人员面试时经常被问的问题.rar

    SQL数据库应聘人员面试时经常被问的问题 目前在职场中很难找到非常合格的数据库开发人员。有人说:“SQL开发是一门语言,它很容易学,但是很难掌握。” 在面试应聘的SQL Server数据库开发人员时,我运用了一套标准的...

    SQL数据库应聘人员面试时经常被问的问题.doc

    SQL数据库应聘人员面试时经常被问的问题.doc

    SQL Server开发人员应聘常被问的问题妙解汇总

    本文介绍了在面试应聘的SQL Server数据库开发人员时常问到的问题,以及其解答。

    android操作电脑数据库SQL

    1.android手机客户端可以对远程数据库Sqlserver进行增删改查 2.包内附有数据库,服务器端,客户端 3.需要本机装有SQLserver。 4.本人使用SQL模式登陆,用户名sa...5.这是去应聘公司给我出的面试题。制作出来共大家学习

    asp.net基于三层模式就业求职招聘网站+sql数据库(毕设项目).zip

    ## 开发软件: Visual Studio 2010以上 数据库:sqlserver2005以上 ## 开发技术:基于MVC思想和三层设计模式,前台采用bootstrap响应式框架,后台div+css (1)登陆:求职者可以通过用户名和密码进行登陆系统。 (2...

    Python开发基于Django网络在线求职招聘网站源码+sql数据库(毕设项目).zip

    企业注册登录后可以发布职位信息,发布宣讲会信息,查看管理自己发布的职位信息,查看求职者对本公司职位的投递信息,可以邀请求职者来参加应聘面试。求职者注册登录后可以按照职位关键字,职位行业,薪资范围,职位...

    mysql大厂面试题及答案

    MySQL面试题涵盖了MySQL数据库的基础知识、SQL语句、优化调优等多个方面。通过这些面试题,可以测试候选人的MySQL数据库技能水平以及相关经验。 适用人群: MySQL面试题适用于准备应聘MySQL数据库管理员、MySQL开发...

    Java面试宝典和大学生面试宝典

    国企会问到技术问题,我就曾被问到如何在 C++中调用 C 程序、索引的分类等技术问题,回答基本上要靠平时的积累和对知识的 掌控能力。电话面试的具体内容可参见第 18 章。 3.3 面试 一个比较好的面试是能够问出求职...

    java面试笔试题库java学习笔记开发教程互联网公司面试资料大全合集.zip

    当面试官问「你有什么要问我的吗」时,应该问什么?.docx 提高 Java 代码性能的各种技巧.docx 搜狗商业平台Java技术实践.docx 最新JAVA编程题全集(50题及答案).doc 百度历年笔试面试150题.docx 笔试1.doc 答案1.doc ...

    安卓Android求职招聘系统App+sql数据库(毕设项目).zip

    ## 开发环境: MyEclipse/Eclipse/Idea(服务器端) + Eclipse(手机客户端) + mysql数据库 ## 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC设计思想! ## 服务器和客户端数据通信格式: ...

    SQL-interview-.rar_interview

    在面试应聘的SQL Server数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列

    2023年经典mysql面试题

    2. 注意SQL语句的优化:在面试中,招聘者可能会问到如何优化SQL语句,应聘者需要准备好自己的答案。要注重索引的使用、避免全表扫描、避免使用大字段、合理使用分页等技巧。 3. 了解MySQL的性能优化:在面试中,...

    毕业设计,基于三层模式Asp.Net+SqlServer开发的就业求职招聘网,内含Asp.Net完整源代码,数据库文件

    毕业设计,基于三层模式Asp.Net+SqlServer开发的就业求职招聘网,内含Asp.Net完整源代码,数据库文件 asp.net基于三层模式就业求职招聘网毕业源码案例设计 开发软件: Visual Studio 2010以上 数据库:sqlserver...

    java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集.zip

    当面试官问「你有什么要问我的吗」时,应该问什么?.docx 提高 Java 代码性能的各种技巧.docx 搜狗商业平台Java技术实践.docx 最新JAVA编程题全集(50题及答案).doc 百度历年笔试面试150题.docx 笔试1.doc 答案1.doc ...

    java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB.zip

    当面试官问「你有什么要问我的吗」时,应该问什么?.docx 提高 Java 代码性能的各种技巧.docx 搜狗商业平台Java技术实践.docx 最新JAVA编程题全集(50题及答案).doc 百度历年笔试面试150题.docx 笔试1.doc 答案1.doc ...

    java面试题以及技巧

    │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念...

    java面试题及技巧4

    │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念...

    人力资源管理系统数据库分析.doc

    " "面试名单表 "保存企业面试的信息 " "应聘人员录用表 "保存企业的录用人员信息 " "转入正式员工登记表 "将试用期职员转为正式职员 " "合同管理类数据表 " "合同管理子集 "保存企业的合同信息 " "合同补充子集 ...

    人力资源管理系统数据库分析(1).doc

    " "面试名单表 "保存企业面试的信息 " "应聘人员录用表 "保存企业的录用人员信息 " "转入正式员工登记表 "将试用期职员转为正式职员 " "合同管理类数据表 " "合同管理子集 "保存企业的合同信息 " "合同补充子集 ...

Global site tag (gtag.js) - Google Analytics