数据库工程师面试题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库工程师面试题

Lyven SQL数据库开发5月14日

(点击上方蓝色字,可快速关注我们哦)

选择题:(每空2分共18分)

1、在MS SQL Server中,用来显示数据库信息的系统存储过程是()

A sp_ dbhelp

B sp_ db

C sp_ help

D sp_ helpdb

2、SQL语言中,删除一个表的命令是()

A DELETE

B DROP

C CLEAR

D REMORE

3、关系数据库中,主键是(__)

A、为标识表中唯一的实体

B、创建唯一的索引,允许空值

C、只允许以表中第一字段建立

D、允许有多个主键的

4、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1___),使用关键字(2___)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3___),如果在SELECT语句中使用聚合函数时,一定在后面使用(4___)。

⑴A、SELECT,INTO B、SELECT,FROM

C、SELECT,GROUP

D、仅SELECT

⑵A、DISTINCT B、UNION

C、ALL C、TOP

⑶A、JOIN B、UNION

C、INTO C、LIKE

⑷A、GROUP BY B、COMPUTE BY

C、HAVING

D、COMPUTE

5、语句DBCC SHRINKDATABASE (Sample, 25)中的25表示的意思是

A、25M

B、剩余占整个空间的25%

C、已用空间占整个空间的25%

D、以上都不对

6、你是一个保险公司的数据库开发人员,公司的保单信息存储在SQL Server 2000数据库中,你使用以下脚本建立了一个名为Policy的表:

CREATE TABLE Policy

PolicyNumber int NOT NULL DEFAULT (0),

InsuredLastName char (30) NOT NULL,

InsuredFirstName char (20) NOT NULL,

InsuredBirthDate datetime NOT NULL,

PolicyDate datetime NOT NULL,

FaceAmount money NOT NULL,

CONSTRAINT PK_Policy PRIMARY KEY (PolicyNumber)

)

每次公司销售出一份保单,Policy表中就增加一条记录,并赋予其一个新的保单号,你将怎么做?

a.建立一个INSTEAD OF INSERT触发器来产生一个新的保单号,并将这个保单号插入数据表中。

b.建立一个INSTEAD OF UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。

c.建立一个AFTER UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。

d.用AFTER UPDATE触发器替代DEFAULT约束条件产生一个新的保单号,并将这个保单号插入数据表中。

7、在SQL语言中,如果要建立一个工资表包含职工号,姓名,职称。工资等字段。若要保证工资字段的取值不低于800元,最合适的实现方法是:

A。在创建工资表时为”工资“字段建立缺省

B。在创建工资表时为”工资“字段建立检查约束

C。在工资表建立一个触发器

D。为工资表数据输入编写一个程序进行控制

8、Select 语句中用来连接字符串的符号是______.

A. “+”

B. “&”

C.“||”

D.“|”

9、你是一个出版公司的数据库开发人员,对特定的书名的每天的销售情况建立了如下的存储过程:

CREATE PROCEDURE get_sales_for_title

title varchar(80), @ytd_sales int OUTPUT

AS

SELECT @ytd_sales = ytd_sales

FROM titles

WHERE title = @title

IF @@ROWCOUNT = 0

RETURN(-1)

ELSE

RETURN(0)

另外建立了一个脚本执行这个存储过程,如果执行成功,将返回对应于书名的每天的销售情况的报表,如果执行失败,将返回“No Sales Found”,怎样建立这个脚本?

A. DECLARE @retval int

DECLARE @ytd int

EXEC get_sales_for_title ‘Net Etiquette’, @ytd

IF @retval < 0

PRINT ‘No sales found’

ELSE

PRINT ‘Year to date sales: ’+ STR (@ytd)

GO

B. DECLARE @retval int

DECLARE @ytd int

EXEC get_sales_for_title ‘Net Etiquette’, @ytd OUTPUT

IF @retval < 0

PRINT ‘No sales found’

ELSE

PRINT ‘Year to date sales: ’+ STR (@ytd)

GO

C. DECLARE @retval int

DECLARE @ytd int

EXEC get_sales_for_title ‘Net Etiquette’,@retval OUTPUT

IF @retval < 0

PRINT ‘No sales found’

ELSE

PRINT ‘Year to date sales: ’+ STR (@ytd)

GO

D. DECLARE @retval int

DECLARE @ytd int

EXEC @retval = get_sales_for_title ‘Net Etiquette’, @ytd OUTPUT

IF @retval < 0

PRINT ‘No sales found’

ELSE

PRINT ‘Year to date sales: ’+ STR (@ytd)

GO

简答题:(共40分)

1、(5分)使用一条SQL语句找到重复的值及重复的次数:有一数据表ZD_ks,其中有字段BM,MC等,请查询出在ZD_ks中BM有重复的值及重复的次数,没有的不要列出。如下表:BM DUPCOUNT

001 3

002 2

相关文档
最新文档