数据库工程师面试题514.docx

上传人:b****2 文档编号:23278433 上传时间:2023-05-15 格式:DOCX 页数:13 大小:17.96KB
下载 相关 举报
数据库工程师面试题514.docx_第1页
第1页 / 共13页
数据库工程师面试题514.docx_第2页
第2页 / 共13页
数据库工程师面试题514.docx_第3页
第3页 / 共13页
数据库工程师面试题514.docx_第4页
第4页 / 共13页
数据库工程师面试题514.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数据库工程师面试题514.docx

《数据库工程师面试题514.docx》由会员分享,可在线阅读,更多相关《数据库工程师面试题514.docx(13页珍藏版)》请在冰豆网上搜索。

数据库工程师面试题514.docx

数据库工程师面试题514

数据库工程师面试题

LyvenSQL数据库开发5月14日

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

选择题:

(每空2分共18分)

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

Asp_dbhelp

Bsp_db

Csp_help

Dsp_helpdb

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

ADELETE

BDROP

CCLEAR

DREMORE

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

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

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

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

D、允许有多个主键的

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

⑴A、SELECT,INTOB、SELECT,FROM

C、SELECT,GROUPD、仅SELECT

⑵A、DISTINCTB、UNION

C、ALLC、TOP

⑶A、JOINB、UNION

C、INTOC、LIKE

⑷A、GROUPBYB、COMPUTEBY

C、HAVINGD、COMPUTE

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

A、25M

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

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

D、以上都不对

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

CREATETABLEPolicy

PolicyNumberintNOTNULLDEFAULT(0),

InsuredLastNamechar(30)NOTNULL,

InsuredFirstNamechar(20)NOTNULL,

InsuredBirthDatedatetimeNOTNULL,

PolicyDatedatetimeNOTNULL,

FaceAmountmoneyNOTNULL,

CONSTRAINTPK_PolicyPRIMARYKEY(PolicyNumber)

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

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

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

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

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

7、在SQL语言中,如果要建立一个工资表包含职工号,姓名,职称。

工资等字段。

若要保证工资字段的取值不低于800元,最合适的实现方法是:

A。

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

B。

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

C。

在工资表建立一个触发器

D。

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

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

A.“+”B.“&”C.“||”D.“|”

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

CREATEPROCEDUREget_sales_for_title

titlevarchar(80),@ytd_salesintOUTPUT

AS

SELECT@ytd_sales=ytd_sales

FROMtitles

WHEREtitle=@title

IF@@ROWCOUNT=0

RETURN(-1)

ELSE

RETURN(0)

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

A.DECLARE@retvalint

DECLARE@ytdint

EXECget_sales_for_title‘NetEtiquette’,@ytd

IF@retval<0

PRINT‘Nosalesfound’

ELSE

PRINT‘Yeartodatesales:

’+STR(@ytd)

GO

B.DECLARE@retvalint

DECLARE@ytdint

EXECget_sales_for_title‘NetEtiquette’,@ytdOUTPUT

IF@retval<0

PRINT‘Nosalesfound’

ELSE

PRINT‘Yeartodatesales:

’+STR(@ytd)

GO

C.DECLARE@retvalint

DECLARE@ytdint

EXECget_sales_for_title‘NetEtiquette’,@retvalOUTPUT

IF@retval<0

PRINT‘Nosalesfound’

ELSE

PRINT‘Yeartodatesales:

’+STR(@ytd)

GO

D.DECLARE@retvalint

DECLARE@ytdint

EXEC@retval=get_sales_for_title‘NetEtiquette’,@ytdOUTPUT

IF@retval<0

PRINT‘Nosalesfound’

ELSE

PRINT‘Yeartodatesales:

’+STR(@ytd)

GO

简答题:

(共40分)

1、(5分)使用一条SQL语句找到重复的值及重复的次数:

有一数据表ZD_ks,其中有字段BM,MC等,请查询出在ZD_ks中BM有重复的值及重复的次数,没有的不要列出。

如下表:

BM DUPCOUNT

001  3

002  2

2、描述(5分)

表1student学生信息表

IDint学生编号

Namevarchar学生姓名

Sexbit性别(男0女1)

Classint班级编号

表2schedule课程信息表

IDint课程编号

Namevarchar课程名称

表3Grade成绩信息表

IDint自动编号

UIDint学生编号

SIDint课程编号

Numint考试成绩

(a)求各班的总人数(1分)

(b)求1班女生和男生的平均成绩(2分)

(c)各班"数据结构"(课程名称)不及格的人数(2分)

3、问题描述:

(30分)

本题用到下面三个关系表:

CARD借书卡。

CNO卡号,NAME姓名,CLASS班级

BOOKS图书。

BNO书号,BNAME书名,AUTHOR作者,PRICE单价,QUANTITY库存册数

BORROW借书记录。

CNO借书卡号,BNO书号,RDATE还书日期

备注:

限定每人每种书只能借一本;库存册数随借书、还书而改变。

要求实现如下15个处理:

1.找出借书超过5本的读者,输出借书卡号及所借图书册数。

(2分)

2.查询借阅了"水浒"一书的读者,输出姓名及班级。

(3分)

3.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。

(3分)

4.查询书名包括"网络"关键词的图书,输出书号、书名、作者。

(2分)

5.查询现有图书中价格最高的图书,输出书名及作者。

(2分)

6.查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。

(4分)

7.将"C01"班同学所借图书的还期都延长一周。

(2分)

8.从BOOKS表中删除当前无人借阅的图书记录。

(2分)

9.在BORROW表上建立一个触发器,完成如下功能:

如果读者借阅的书名是"数据库技术及应用",就将该读者的借阅记录保存在BORROW_SAVE表中(注ORROW_SAVE表结构同BORROW表)。

(4分)

10.建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)。

(3分)

11.查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出。

(3分)

答案(仅供)

选择题

1、D2、B3、A

4、⑴B,⑵A,⑶B,⑷A

5、B6、A7、B

8、A9、D

简答题

1、

createtableZD_ks(BMvarchar(10),mcvarchar(10),ageint)

insertintoZD_ks(bm,mc,age)values('001','张三',1)

insertintoZD_ks(bm,mc,age)values('001','李四',2)

insertintoZD_ks(bm,mc,age)values('001','王五',3)

insertintoZD_ks(bm,mc,age)values('002','赵六',1)

insertintoZD_ks(bm,mc,age)values('002','钱七',2)

insertintoZD_ks(bm,mc,age)values('003','孙八',1)

go

selectBM,count(*)asDUPCOUNTfromzd_ksgroupbybmhavingcount(*)>1

droptablezd_ks

2、

(1)

selectClass,count

(1)asnumfromstudentgroupbyClass

(2)

selectS.Sex,avg(G.Num)asNum

fromstudentS,GradeG

whereS.ID=G.IDandS.Class=1

groupbyS.Sex

(3)

selectS.Class,count

(1)asnum

fromstudentS,GradeG,scheduleSC

whereS.ID=G.IDandG.SID=Sc.IDandSC.Name='数据结构'andSc.Num<60

groupbyS.Class

3、

1.找出借书超过5本的读者,输出借书卡号及所借图书册数

--实现代码:

SELECTCNO,借图书册数=COUNT(*)

FROMBORROW

GROUPBYCNO

HAVINGCOUNT(*)>5

2.查询借阅了"水浒"一书的读者,输出姓名及班级

--实现代码:

SELECT*FROMCARDc

WHEREEXISTS(

SELECT*FROMBORROWa,BOOKSb

WHEREa.BNO=b.BNO

ANDb.BNAME=N'水浒'

ANDa.CNO=c.CNO)

3.查询过期未还图书,输出借阅者(卡号)、书号及还书日期

--实现代码:

SELECT*FROMBORROW

WHERERDATE

4.查询书名包括"网络"关键词的图书,输出书号、书名、作者

--实现代码:

SELECTBNO,BNAME,AUTHORFROMBOOKS

WHEREBNAMELIKEN'%网络%'

5.查询现有图书中价格最高的图书,输出书名及作者

--实现代码:

SELECTBNO,BNAME,AUTHORFROMBOOKS

WHEREPRICE=(

SELECTMAX(PRICE)FROMBOOKS)

6.查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出

--实现代码:

SELECTa.CNO

FROMBORROWa,BOOKSb

WHEREa.BNO=b.BNOANDb.BNAME=N'计算方法'

ANDNOTEXISTS(

SELECT*FROMBORROWaa,BOOKSbb

WHEREaa.BNO=bb.BNO

ANDbb.BNAME=N'计算方法习题集'

ANDaa.CNO=a.CNO)

ORDERBYa.CNODESC

7.将"C01"班同学所借图书的还期都延长一周

--实现代码:

UPDATEbSETRDATE=DATEADD(Day,7,b.RDATE)

FROMCARDa,BORROWb

WHEREa.CNO=b.CNO

ANDa.CLASS=N'C01'

8.从BOOKS表中删除当前无人借阅的图书记录

--实现代码:

DELETEAFROMBOOKSa

WHERENOTEXISTS(

SELECT*FROMBORROW

WHEREBNO=a.BNO)

9.在BORROW表上建立一个触发器,完成如下功能:

如果读者借阅的书名是"数据库技术及应用",就将该读者的借阅记录保存在BORROW_SAVE表中(注ORROW_SAVE表结构同BORROW表)

--实现代码:

CREATETRIGGERTR_SAVEONBORROW

FORINSERT,UPDATE

AS

IF@@ROWCOUNT>0

INSERTBORROW_SAVESELECTi.*

FROMINSERTEDi,BOOKSb

WHEREi.BNO=b.BNO

ANDb.BNAME=N'数据库技术及应用'

10.建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)

--实现代码:

CREATEVIEWV_VIEW

AS

SELECTa.NAME,b.BNAME

FROMBORROWab,CARDa,BOOKSb

WHEREab.CNO=a.CNO

ANDab.BNO=b.BNO

ANDa.CLASS=N'力01'

11.查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出

--实现代码:

SELECTa.CNO

FROMBORROWa,BOOKSb

WHEREa.BNO=b.BNO

ANDb.BNAMEIN(N'计算方法',N'组合数学')

GROUPBYa.CNO

HAVINGCOUNT(*)=2

ORDERBYa.CNODESC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1