您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 23数据库工程师面试题(答案)
考试试题数据库工程师面试题第1页共4页考试时间:60分钟开始时间:结束时间:日期:年月日姓名:总分:100分得分:一、填空题:(10空格,每空格3分,共30分)1、SQLServer2000中使用的数据库对象包括:表、视图、存储过程、函数、存储过程等。2、存储过程是一个完成特定功能的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。3、索引就一种特殊的对数据库中表的一列或者多列特定排序的结构,数据库的搜索引擎可以利用它加速对数据的检索。4、事务就是被绑定在一起作为一个整体(单元)的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。5、SQLServer2000中使用备份文件恢复数据库的写法是RESTOREDATABASEXXXXFROMDISK=N'XXXX'二、简答题(每题5分,共30分)ORACLE数据库中:1.解释冷备份和热备份的不同点以及各自的优点热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?建控制文件,用带backupcontrolfile子句的recover命令恢复数据库。3.如何转换init.ora到spfile?使用createspfilefrompfile命令考试试题数据库工程师面试题第2页共4页4.解释datablock,extent和segment的区别(这里建议用英文术语)datablock是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的datablock就组成了extent.一个数据库对象拥有的所有extents被称为该对象的segment.5.给出两个检查表结构的方法1、DESCRIBE命令2、DBMS_METADATA.GET_DDL包6.怎样查看数据库引擎的报错salertlog三、SQL练习题(每题10分,共40分)1.编写SQL,已知关系模式:s(s#,sname)c(c#,cname)sc(s#,c#,score)①找出选修了c1课程的学员;方案一:SELECT*FROMsWHEREs#IN(SELECTs#FROMscWHEREc#='c1')方案二:SELECT*FROMsWHEREEXISTS(SELECT*FROMscWHEREsc.c#='c1'ANDsc.s#=s.s#)方案三:考试试题数据库工程师面试题第3页共4页SELECTs.*FROMs,c,scWHEREs.sno=sc.snoANDc.cno=sc.cnoANDc.cname='c1'②找出未选修c2课程的学员;方案一:SELECT*FROMsWHEREs#NOTIN(SELECTs#FROMscWHEREc#='c2')方案二:SELECT*FROMsWHERENOTEXISTS(SELECT*FROMscWHEREsc.c#='c2'ANDsc.s#=s.s#)方案三:SELECTs.snameFROMs,c,scWHEREs.sname=sc.snameANDc.cname=sc.cnameANDc.cnameNOTIN('c1')③找出至少包含了s2选修了的课程的学员;SELECT*FROMscaWHERENOTEXISTS(SELECT*FROMscbWHEREs#='s2'ANDNOTEXISTS(SELECT*FROMsccWHEREb.c#=c.c#ANDa.s#=c.c#))④找出选修了所有课程的学员.SELECTs#FROMscGROUPBYs#HAVINGCount(s#)=(SELECTCount(s#)FROMsc)考试试题数据库工程师面试题第4页共4页2、有订单表Order,单号字段RefNoVARCHAR(10),需要实现自动编号,格式为YYYYMMXXXX,其中XXXX为序号,如:2004050001,2004050002……2004059999等,采用SQL实现新订单编号的思路。计算列自定义函数都可以3、如何删除表中重复Name字段的数据,用SQL写出代码。Select*fromTempIDName================1A2B3B4C方案一:DELETEFROMtempWHEREid=(SELECTMax(id)FROMtempaWHEREa.name=temp.name)方案二:WITHcteAS(SELECTRow_number()OVER(partitionBYNameORDERBYID)ASRNFROMA)DELETEFROMcteWHERERN14、找出当月的天数SELECTDatediff(dd,Dateadd(dd,1-Day(Getdate()),Getdate()),Dateadd(mm,1,Dateadd(dd,1-Day(Getdate()),Getdate())))
本文标题:23数据库工程师面试题(答案)
链接地址:https://www.777doc.com/doc-3104115 .html