《数据库工程师面试题(答案)(共4页).doc》由会员分享,可在线阅读,更多相关《数据库工程师面试题(答案)(共4页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上考试时间:60分钟 开始时间: 结束时间: 日期: 年 月 日 姓 名: 总分:100分 得 分: 一、 填空题:(10空格,每空格3分,共30分)1、 SQL Server 2000中使用的数据库对象包括: 表 、 视图 、 存储过程 、 函数 、 存储过程 等。2、 存储过程是一个 完成特定功能 的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。3、 索引就一种特殊的 对数据库中表的一列或者多列特定排序的结构 ,数据库的搜索引擎可以利用它加速对数据的检索。4、 事务就是被绑定在一起作为一个 整体(单元) 的SQL语句分组,如果
2、任何一个语句操作失败那么整个操作就被失败,以后操作就会 回滚 到操作前状态,或者是上有个节点。5、 SQLServer2000中使用备份文件恢复数据库的写法是 RESTORE DATABASE XXXX FROM DISK = NXXXX 二、 简答题(每题5分,共30分)ORACLE数据库中:1.解释冷备份和热备份的不同点以及各自的优点 热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由
3、于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?建控制文件,用带backup control file 子句的recover 命令恢复数据库。3.如何转换init.ora到spfile?使用create spfile from pfile 命令4.解释data block , extent 和 segment的区别(这里建议用英文术语) data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有ext
4、ents被称为该对象的segment.5.给出两个检查表结构的方法 1、DESCRIBE命令 2、DBMS_METADATA.GET_DDL 包6.怎样查看数据库引擎的报错salert log三、 SQL练习题(每题10分,共40分)1. 编写SQL,已知关系模式: s(s#,sname) c(c#,cname) sc(s#,c#,score) 找出选修了c1课程的学员;方案一:SELECT *FROM sWHERE s# IN (SELECT s# FROM sc WHERE c# = c1)方案二:SELECT *FROM sWHERE EXISTS (SELECT * FROM sc W
5、HERE sc.c# = c1 AND sc.s# = s.s#) 方案三: SELECT s.*FROM s, c, scWHERE s.sno = sc.sno AND o = o AND ame = c1 找出未选修c2课程的学员;方案一:SELECT *FROM sWHERE s# NOT IN (SELECT s# FROM sc WHERE c# = c2)方案二:SELECT *FROM sWHERE NOT EXISTS (SELECT * FROM sc WHERE sc.c# = c2 AND sc.s# = s.s#)方案三:SELECT s.snameFROM s, c
6、, scWHERE s.sname = sc.sname AND ame = ame AND ame NOT IN ( c1 ) 找出至少包含了s2选修了的课程的学员; SELECT * FROM sc a WHERE NOT EXISTS (SELECT * FROM sc b WHERE s#=s2 AND NOT EXISTS (SELECT * FROM sc c WHERE b.c#=c.c# AND a.s#=c.c#) 找出选修了所有课程的学员.SELECT s#FROM scGROUP BY s#HAVING Count(s#) = (SELECT Count(s#) FROM
7、 sc)2、有订单表Order,单号字段RefNo VARCHAR(10),需要实现自动编号,格式为YYYYMMXXXX,其中XXXX为序号,如:,等,采用SQL实现新订单编号的思路。计算列 自定义函数都可以3、如何删除表中重复Name字段的数据,用SQL写出代码。Select * from TempID Name=1 A2 B3 B4 C方案一:DELETE FROM tempWHERE id = (SELECT Max(id) FROM temp a WHERE a.name = temp.name) 方案二:WITH cte AS (SELECT Row_number()OVER(partition BY Name ORDER BY ID) AS RN FROM A)DELETE FROM cteWHERE RN 14、找出当月的天数SELECT Datediff(dd, Dateadd(dd, 1 - Day(Getdate(), Getdate(), Dateadd(mm, 1, Dateadd(dd, 1 - Day(Getdate(), Getdate() 专心-专注-专业