数据仓库面试题及答案
数据仓库面试题及答案
Student(S#,Sname,Sage,Sse-x) 学生表 S#:学号;Sname:学生姓名;Sage:学生年龄;Sse-x:学生性别
Course(C#,Cname,T#) 课程表C#,课程编号;Cname:课程名字;T#:教师编号
SC(S#,C#,score) 成绩表 S#:学号;C#,课程编号;score:成绩Teacher(T#,Tname) 教师表 T#:教师编号; Tname:教师名字问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
from SC where C#='002') b
where a.score>b.score and a.s#=b.s#;
2、查询平均成绩大于60分的同学的学号和平均成绩;
select S#,avg(score)
from sc
group by S# having avg(score) >60;
3、查询所有同学的学号、姓名、选课数、总成绩;
select Student.S#,Student.Sname,count(SC.C#),sum(score)
from Student left Outer join SC on Student.S#=SC.S#
group by Student.S#,Sname
4、查询姓“李”的老师的个数;
select count(distinct(Tname))
from Teacher
where Tname like '李%';
5、查询没学过“叶平”老师课的同学的学号、姓名;
select Student.S#,Student.Sname
from Student
where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');
6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;
select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');
7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;
select S#,Sname
from Student
where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,T eacher where Teacher.T#=Course.T# and Tname='叶平'));
8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;
Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 9、查询所有课程成绩小于60分的同学的学号、姓名; select S#,Sname from Student where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60); 10、查询没有学全所有课的同学的学号、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course); 11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名; select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001'; 12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名; select distinct SC.S#,Sname from Student,SC where Student.S#=SC.S# and C# in (select C# from SC where S#='001'); 13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩; update SC set score=(select avg(SC_2.score) from SC SC_2 where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平'); 14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名; select S# from SC where C# in (select C# from SC where S#='1002') group by S# having count(*)=(select count(*) from SC where S#='1002'); 15、删除学习“叶平”老师课的SC表记录; Delect SC from course ,Teacher where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平'; 16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、 号课的平均成绩; Insert SC select S#,'002',(Select avg(score) from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002'); 17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分 SELECT S# as 学生ID ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库 ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理 ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语 ,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩 FROM SC AS t GROUP BY S# ORDER BY avg(t.score) 18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分 SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分 FROM SC L ,SC AS R WHERE L.C# = R.C# and L.score = (SELECT MAX(IL.score) FROM SC AS IL,Student AS IM WHERE L.C# = IL.C# and IM.S#=IL.S# GROUP BY IL.C#) AND R.Score = (SELECT MIN(IR.score) FROM SC AS IR WHERE R.C# = IR.C# GROUP BY IR.C# ); 19、按各科平均成绩从低到高和及格率的百分数从高到低顺序 SELECT t.C# AS 课程号,max(https://www.wendangku.net/doc/2319361880.html,ame)AS 课程名,isnull(AVG(score),0) AS 平均成绩 ,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数 FROM SC T,Course where t.C#=course.C# GROUP BY t.C# ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004) SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分 ,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数 ,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分 ,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数 ,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分 ,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数 ,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分 ,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数 FROM SC 21、查询不同老师所教不同课程平均分从高到低显示 SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(https://www.wendangku.net/doc/2319361880.html,ame) AS 课程名称,AVG(Score) AS 平均成绩 FROM SC AS T,Course AS C ,Teacher AS Z where T.C#=C.C# and C.T#=Z.T# GROUP BY C.C# ORDER BY AVG(Score) DESC 22、查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004)[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩 SELECT DISTINCT top 3 SC.S# As 学生学号, Student.Sname AS 学生姓名 , T1.score AS 企业管理, T2.score AS 马克思, T3.score AS UML, T4.score AS 数据库, ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分 FROM Student,SC LEFT JOIN SC AS T1 ON SC.S# = T1.S# AND T1.C# = '001' LEFT JOIN SC AS T2 ON SC.S# = T2.S# AND T2.C# = '002' LEFT JOIN SC AS T3 ON SC.S# = T3.S# AND T3.C# = '003' LEFT JOIN SC AS T4 ON SC.S# = T4.S# AND T4.C# = '004' WHERE student.S#=SC.S# and ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) NOT IN (SELECT DISTINCT TOP 15 WITH TIES ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) FROM sc LEFT JOIN sc AS T1 ON sc.S# = T1.S# AND T1.C# = 'k1' LEFT JOIN sc AS T2 ON sc.S# = T2.S# AND T2.C# = 'k2' LEFT JOIN sc AS T3 ON sc.S# = T3.S# AND T3.C# = 'k3' LEFT JOIN sc AS T4 ON sc.S# = T4.S# AND T4.C# = 'k4' ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC); 23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60] SELECT SC.C# as 课程ID, Cname as 课程名称 ,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85] ,SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70] ,SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60] ,SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -] FROM SC,Course where SC.C#=Course.C# GROUP BY SC.C#,Cname; 24、查询学生平均成绩及其名次 SELECT 1+(SELECT COUNT( distinct 平均成绩) FROM (SELECT S#,AVG(score) AS 平均成绩 FROM SC GROUP BY S# ) AS T1 WHERE 平均成绩 > T2.平均成绩) as 名次, S# as 学生学号,平均成绩 FROM (SELECT S#,AVG(score) 平均成绩 FROM SC GROUP BY S# ) AS T2 ORDER BY 平均成绩 desc; 25、查询各科成绩前三名的记录:(不考虑成绩并列情况) SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数 FROM SC t1 WHERE score IN (SELECT TOP 3 score FROM SC WHERE t1.C#= C# ORDER BY score DESC ) ORDER BY t1.C#; 26、查询每门课程被选修的学生数 select c#,count(S#) from sc group by C#; 27、查询出只选修了一门课程的全部学生的学号和姓名 select SC.S#,Student.Sname,count(C#) AS 选课数 from SC ,Student where SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1; 28、查询男生、女生人数 Select count(Sse-x) as 男生人数 from Student group by Sse-x having Sse-x='男'; Select count(Sse-x) as 女生人数 from Student group by Sse-x having Sse-x='女'; 29、查询姓“张”的学生名单 SELECT Sname FROM Student WHERE Sname like '张%'; 30、查询同名同性学生名单,并统计同名人数 select Sname,count(*) from Student group by Sname having count(*)>1;; 31、1981年出生的学生名单(注:Student表中Sage列的类型是datetime) select Sname, CONVERT(char (11),DATEPART(year,Sage)) as age from student where CONVERT(char(11),DATEPART(year,Sage))='1981'; 32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列 Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ; 33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩 select Sname,SC.S# ,avg(score) from Student,SC where Student.S#=SC.S# group by SC.S#,Sname having avg(score)>85; 34、查询课程名称为“数据库”,且分数低于60的学生姓名和分数 Select Sname,isnull(score,0) from Student,SC,Course where SC.S#=Student.S# and SC.C#=Course.C# and https://www.wendangku.net/doc/2319361880.html,ame='数据库'and score <60; 35、查询所有学生的选课情况; SELECT SC.S#,SC.C#,Sname,Cname FROM SC,Student,Course where SC.S#=Student.S# and SC.C#=Course.C# ; 36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数; SELECT distinct student.S#,student.Sname,SC.C#,SC.score FROM student,Sc WHERE SC.score>=70 AND SC.S#=student.S#; 37、查询不及格的课程,并按课程号从大到小排列 select c# from sc where scor e <60 order by C# ; 38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名; select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score>80 and C#='003'; 39、求选了课程的学生人数 select count(*) from sc; 40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩 select Student.Sname,score from Student,SC,Course C,Teacher where Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname='叶平' and SC.score=(select max(score)from SC where C#=C.C# ); 41、查询各个课程及相应的选修人数 select count(*) from sc group by C#; 42、查询不同课程成绩相同的学生的学号、课程号、学生成绩 select distinct A.S#,B.score from SC A ,SC B where A.Score= B.Score and A.C# <>B.C# ; 43、查询每门功成绩最好的前两名 SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数 FROM SC t1 WHERE score IN (SELECT TOP 2 score FROM SC WHERE t1.C#= C# ORDER BY score DESC ) ORDER BY t1.C#; 44、统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,查询结果按人数降序排列,若人数相同,按课程号升序排列 select C# as 课程号,count(*) as 人数 from sc group by C# order by count(*) desc,c# 45、检索至少选修两门课程的学生学号 select S# from sc group by s# having count(*) > = 2 46、查询全部学生都选修的课程的课程号和课程名 select C#,Cname from Course where C# in (select c# from sc group by c#) 47、查询没学过“叶平”老师讲授的任一门课程的学生姓名 select Sname from Student where S# not in (select S# from Course,Teacher,SC where Course.T#=Teacher.T# and SC.C#=course.C# and Tname='叶平'); 48、查询两门以上不及格课程的同学的学号及其平均成绩 select S#,avg(isnull(score,0)) from SC where S# in (select S# from SC where score <60 group by S# having count(*)>2)group by S#; 49、检索“004”课程分数小于60,按分数降序排列的同学学号 select S# from SC where C#='004'and score <60 order by score desc; 50、删除“002”同学的“001”课程的成绩 delete from Sc where S#='002'and C#='001'; 常见数据库面试题及答案2015-11-01 17:14 | #2楼 第一套 一.选择题 1. 下面叙述正确的是______。 A、算法的执行效率与数据的存储结构无关 B、算法的空间复杂度是指算法程序中指令(或语句)的条数 C、算法的有穷性是指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对 2. 以下数据结构中不属于线性数据结构的是______。A、队列B、线性表C、二叉树D、栈 3. 在一棵二叉树上第5层的结点数最多是______。A、8 B、16 C、32 D、15 4. 下面描述中,符合结构化程序设计风格的是______。 A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B、模块只有一个入口,可以有多个出口 C、注重提高程序的执行效率 D、不使用goto语句 5. 下面概念中,不属于面向对象方法的是______。 A、对象 B、继承 C、类 D、过程调用 6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。 A、可行性分析 B、需求分析 C、详细设计 D、程序编码 7. 在软件开发中,下面任务不属于设计阶段的是______。 A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 8. 数据库系统的核心是______。 A、数据模型 B、数据库管理系统 C、软件工具 D、数据库 9. 下列叙述中正确的是______。 A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。 A、内模式 B、外模式 C、概念模式 D、逻辑模式 11. Visual FoxPro数据库文件是______。 A、存放用户数据的文件 B、管理数据库对象的系统文件 C、存放用户数据和系统的文件 D、前三种说法都对 12. SQL语句中修改表结构的命令是______。 A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 13. 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是______。 A、部门+性别+基本工资 B、部门+性别+STR(基本工资) C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资) 14. 把一个项目编译成一个应用程序时,下面的叙述正确的是______。 A、所有的项目文件将组合为一个单一的应用程序文件 B、所有项目的包含文件将组合为一个单一的应用程序文件 C、所有项目排除的文件将组合为一个单一的应用程序文件 D、由用户选定的项目文件将组合为一个单一的应用程序文件 15. 数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是______。 A、DBS包括DB和DBMS B、DBMS包括DB和DBS C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS 16. 在"选项"对话框的"文件位置"选项卡中可以设置______。 A、表单的默认大小 B、默认目录 C、日期和时间的显示格式 D、程序代码的颜色 17. 要控制两个表中数据的完整性和一致性可以设置"参照完整性",要求这两个表______。 A、是同一个数据库中的两个表 B、不同数据库中的两个表 C、两个自由表 D、一个是数据库表另一个是自由表 18. 定位第一条记录上的命令是______。 A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP 19. 在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过______。 A、候选键 B、主键 C、外键 D、超键 20. 设当前数据库有10条记录(记录未进行任何索引),在下列三种情况下,当前记录号为1时;EOF()为真时;BOF()为真时,命令?RECN()的结果分别是______。 A、1,11,1 B、1,10,1 C、1,11,0 D、1,10,0 21. 下列表达式中结果不是日期型的是______。 A、CTOD("2000/10/01") B、{^99/10/01}+365 C、VAL("2000/10/01") D、DATE() 22. 只有满足联接条件的记录才包含在查询结果中,这种联接为______。 A、左联接 B、右联接 C、内部联接 D、完全联接 23. 索引字段值不唯一,应该选择的索引类型为______。 A、主索引 B、普通索引 C、候选索引 D、唯一索引 24. 执行SELECT 0选择工作区的结果是______。 A、选择了0号工作区 B、选择了空闲的最小号工作区 C、关闭选择的工作区 D、选择已打开的工作区 25. 从数据库中删除表的命令是______。 A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE 26. DELETE FROM S WHERE 年龄>60语句的功能是______。 A、从S表中彻底删除年龄大于60岁的记录 B、S表中年龄大于60岁的记录被加上删除标记 C、删除S表 D、删除S表的年龄列 27. SELECT-SQL语句是______。 A、选择工作区语句 B、数据查询语句 C、选择标准语句 D、数据修改语句 28. SQL语言是______语言。A、层次数据库B、网络数据库C、关系数据库 D、非数据库 29. 在SQL中,删除视图用______。 A、DROP SCHEMA命令 B、CREATE TABLE命令 C、DROP VIEW命令 D、DROP INDEX命令 30. 以下属于非容器类控件的是______。A、Form B、Label C、 page D、Container 31. 将查询结果放在数组中应使用______短语。 A、INTO CURSOR B、TO ARRAY C、INTO TABLE D、INTO ARRAY 32. 在命令窗口执行SQL命令时,若命令要占用多行,续行符是______。 A、冒号(:) B、分号(;) C、逗号(,) D、连字符(-) 33. 设有图书管理数据库: 图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2)) 读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20)) 借阅(借书证号C(4),总编号C(6),借书日期D(8)) 对于图书管理数据库,查询0001号借书证的读者姓名和所借图书的书名。 SQL语句正确的是______。 SELECT 姓名,书名 FROM 借阅,图书,读者 WHERE; 借阅.借书证号="0001" AND; ______ ______ A、图书.总编号=借阅.总编号 AND; 读者.借书证号=借阅.借书证号 B、图书.分类号=借阅.分类号 AND; 读者.借书证号=借阅.借书证号 C、读者.总编号=借阅.总编号 AND; 读者.借书证号=借阅.借书证号 D、图书.总编号=借阅.总编号 AND; 34. 设有图书管理数据库: 图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2)) 读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20)) 借阅(借书证号C(4),总编号C(6),借书日期D(8)) 对于图书管理数据库,分别求出各个单位当前借阅图书的读者人次。下面的SQL语句正确的是______。 SELECT 单位,______ FROM 借阅,读者 WHERE; 借阅.借书证号=读者.借书证号 ______ A、COUNT(借阅.借书证号) GROUP BY 单位 B、SUM(借阅.借书证号) GROUP BY 单位 C、COUNT(借阅.借书证号) ORDER BY 单位 D、COUNT(借阅.借书证号) HAVING 单位 35. 设有图书管理数据库: 图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2)) 读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20)) 借阅(借书证号C(4),总编号C(6),借书日期D(8)) 对于图书管理数据库,检索借阅了《现代网络技术基础》一书的借书证号。下面SQL语句正确的是______。 SELECT 借书证号 FROM 借阅 WHERE 总编号=; ______ A、(SELECT 借书证号 FROM 图书 WHERE 书名="现代网络技术基础") B、(SELECT 总编号 FROM 图书 WHERE 书名="现代网络技术基础") C、(SELECT 借书证号 FROM 借阅 WHERE 书名="现代网络技术基础") D、(SELECT 总编号 FROM 借阅 WHERE 书名="现代网络技术基础") 二、填空题 36. 算法的复杂度主要包括______复杂度和空间复杂度。 37. 数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。 38. 若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。 39. 如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体"工人"与实体"设备"之间存在______联系。 40. 关系数据库管理系统能实现的专门关系运算包括选择、连接和______。 41. 命令?LEN("THIS IS MY BOOK")的结果是______。 42.SQL SELECT语句为了将查询结果存放到临时表中应该使用______短语。 43. 多栏报表的栏目数可以通过______来设置。 44. 在打开项目管理器之后再打开"应用程序生成器",可以通过按ALT+F2键,快捷菜单和"工具"菜单中的______。 45. 数据库系统的核心是______。 46. 查询设计器中的"联接"选项卡,可以控制______选择。 47. 设有图书管理数据库: 图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2)) 读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20)) 借阅(借书证号C(4),总编号C(6),借书日期D(8)) 用SQL的CREATE命令建立借阅表(字段顺序要相同),请对下面的SQL语句填空: ______ 48. 设有图书管理数据库: 图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2)) 读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址 C(20)) 借阅(借书证号C(4),总编号C(6),借书日期D(8)) 对图书管理数据库,查询由"清华大学出版社"或"电子工业出版社"出版,并且单价不超出20元的书名。请对下面的SQL语句填空:SELECT 书名,出版单位,单价 FROM 图书; WHERE_______ AND; _______ 49. 设有图书管理数据库: 图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2)) 读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20)) 借阅(借书证号C(4),总编号C(6),借书日期D(8)) 对图书管理数据库,求共借出多少种图书。请对下面的SQL语句填空: SELECT _______ FROM 借阅 第一套题答案 选择题 1-5 CCBAD 6-10 BDBCA 11-15 DCBAA 16-20 BAABA 21-25 CCBBA 26-30 BBCCB 31-35 DDAAB 填空题 36.时间 37.模式或逻辑模式 38.黑盒 39. 一对多或 1对多或一对n 或 1:N 或 1:n 或 1:n 或 1:N 或一对m 或 1:M 或 1:m 或 1:m 或 1:N 40. 投影 41.15 42. Into cursor 或 Into cursor cursorname 43. 页面设置或列数44. 应用程序生成器45. 数据库管理系统或DBMS 46. 联接类型或联接条件 47. CREATE TABLE 借阅 (借书证号C(4),总编号 C(6),借书日期 D(8)) 或 CREA TABL 借阅 (借书证号 C(4),总编号 C(6),借书日期D(8)) 或 CREATE TABLE 借阅 (借书证号 C(4),总编号 C(6),借书日期 D) 或 CREA TABL 借阅 (借书证号 C(4),总编号 C(6),借书日期 D) 48. 单价<=20 或 (出版单位="清华大学出版社" OR 出版 单位="电子工业出版社") 或 (出版单位="电子工业出版社" OR 出版单位="清华大学出版社") 或(出版单位='清华大学出版社' OR 出版单位='电子工业出版社') 与 (出版单位="清华大学出版社" OR 出版单位="电子工业出版社") 或(出版单位='清华大学出版社‘) 49. COUNT(DISTINCT 总编号) 或COUN(DISTINCT 总编号) 或COUNT(DIST 总编号) 或 COUN(DIST 总编号) 第二套题 一、选择题 1. 以下数据结构中不属于线性数据结构的是______。 A、队列 B、线性表 C、二叉树 D、栈 2. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。 A、可行性分析 B、需求分析 C、详细设计 D、程序编码 3. 结构化程序设计主要强调的是______。 A、程序的规模 B、程序的易读性 C、程序的执行效率 D、程序的可移植性 4. 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。 A、概要设计 B、详细设计 C、可行性分析 D、需求分析 5. 下列关于栈的叙述中正确的是______。A、在栈中只能插入数据 B、在栈中只能删除数据 C、栈是先进先出的线性表 D、栈是先进后出的线性表 6. 下面不属于软件设计原则的是______。A、抽象 B、模块化 C、自底向上 D、信息隐蔽 7. 对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。 A、N+1 B、N C、(N+1)/2 D、N/2 8. 视图设计一般有3种设计次序,下列不属于视图设计的是______。 A、自顶向下 B、由外向内 C、由内向外 D、自底向上 9. 下列有关数据库的描述,正确的是______。A、数据库是一个 数据仓库及BI工程师面试题集锦 前言 1、介绍一下项目经验、项目中的角色。 一、数据库 1、Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作 用? i.视图与表的区别 1.1、视图是已经编译好的sql语句。而表不是 2.视图没有实际的物理记录。而表有。 3.表是内容,视图是窗口 4.表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在, 表可以及时四对它进行修改,但视图只能有创建的语句来修改ii.物化视图与视图区别 1.物化视图和视图差别非常大,不是几句能说清物化视图是自动刷新或者 手动刷新的,视图不用刷新物化视图也可以直接update,但是不影响b ase table,对视图的update反映到base table上物化视图主要用于远 程数据访问,物化视图中的数据需要占用磁盘空间,视图中不保存数据。 2、Oracle数据库,有哪几类索引,分别有什么特点? a) 1.单列索引与复合索引 一个索引可以由一个或多个列组成,用来创建索引的列被称为“索引列”。 单列索引是基于单列所创建的索引,复合索引是基于两列或者多列所创建的索引。 2.唯一索引与非唯一索引 唯一索引是索引列值不能重复的索引,非唯一索引是索引列可以重复的索引。 无论是唯一索引还是非唯一索引,索引列都允许取NULL值。默认情况下,Oracle 创建的索引是不唯一索引。 3.B树索引 B树索引是按B树算法组织并存放索引数据的,所以B树索引主要依赖其组织并存放索引数据的算法来实现快速检索功能。 4.位图索引 位图索引在多列查询时,可以对两个列上的位图进行AND和OR操作,达到更好的查询效果。 5.函数索引 Oracle中不仅能够直接对表中的列创建索引,还可以对包含列的函数或表达式创建索引,这种索引称为“位图索引”。 3、Union与Union All的区别? a)Union会对查询结果进行排序去重,效率比union all 低,union all只是两个查询 集的合并操作。建议使用Union all,查询出来后再对数据进行去重操作。 4、对游标的理解?游标的分类?使用方法? 游标是映射在结果集中一行数据的位置实体,有了游标,用户就可以访问结果集中的任何一条数据。游标分为静态游标和REF游标,静态游标分为显示游标和隐式游标, Oracle数据库DBA面试题50道及答案_经典 1. 解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令 . 4. 解释data block , extent 和 segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1、DESCRIBE命令 2、DBMS_METADATA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL 操作,它移动HWK,不需要 rollback segment .而Delete是DML操作需要rollback segment 且花费较长时间。 8. 使用索引的理由 数据仓库架构师岗位面试真题及解析 含专业类面试问题和高频面试问题,共计25道 一、描述一下您理解的“数据仓库”的定义,以及它在企业中的角色和重要性。 考察点及参考回答:数据仓库架构师岗位面试问题 一、考察点: 1. 理解能力:面试者是否能准确、全面地描述数据仓库的定义,以及它在企业中的角色和重要性。 2. 专业知识:面试者是否具备数据仓库相关的专业知识,包括数据仓库的基本概念、架构、技术等。 3. 行业知识:了解数据仓库在行业中的应用情况,以及数据仓库在企业中的实际应用场景。 二、参考回答: 数据仓库是一个面向主题的、集成的、稳定的、反映历史变化的数据集合,它在企业中扮演着至关重要的角色。首先,数据仓库是企业决策支持系统的数据源,它通过对业务数据的抽取、清洗和整合,为企业的决策制定提供数据支持。其次,数据仓库是企业业务运营的反映,它通过记录业务数据的变动,为企业提供实时的视图,帮助企业了解业务运营状况。最后,数据仓库是企业未来决策的依据,它通过对历史数据的分析,为企业未来的决策提供依据和建议。数据仓库的重要性不言而喻,它是企业决策的基础,也是企业业务运营的反映,更是企业未来决策的依据。 希望以上回答对您有所帮助。 二、请详细描述一次您在数据仓库项目中遇到的挑战,以及您如何解决这个挑战的。 考察点及参考回答: 一、考察点: 1. 应聘者对数据仓库架构师岗位的理解和经验。 2. 应聘者的问题解决能力,包括分析问题、提出解决方案和实施方案的能力。 3. 应聘者面对挑战时的应变能力和团队合作精神。 二、参考回答: 在我曾经负责的一个数据仓库项目中,我们面临了数据整合的挑战。项目涉及的数据源众多,数据质量参差不齐,且数据整合的逻辑复杂,需要我们进行大量的数据处理工作。 面对这一挑战,我首先对各个数据源的数据质量进行了详细的分析,找出问题所在,并提出了针对性的数据清洗方案。同时,为了提高数据处理的效率,我们采用了新的数据处理技术,优化了数据处理流程。 在实施过程中,我与团队成员密切协作,及时解决问题,确保项目进度不受影响。非常终,我们成功地完成了数据整合工作,为后续的数据分析提供了高质量的数据支持。这次经历不仅锻炼了我的问题解决能力,也让我深刻体会到了团队合作的重要性。 以上就是我在数据仓库项目中遇到挑战并解决的过程。我相信,这次经历将对我今后在数据仓库架构师岗位的工作中起到积极的推动作用。 三、能否谈谈您如何选择并设计数据仓库的数据模型?你有哪些主要考虑的因素? 考察点及参考回答:数据仓库架构师如何选择并设计数据模型 一、考察点: 1. 知识储备:面试者对数据仓库模型设计理论、方法论的理解程度。 2. 逻辑思维能力:面试者是否能根据业务需求,合理规划数据模型,并设计出符合业务逻辑的数据结构。 3. 创新性:面试者是否能提出新的数据模型设计思路,以应对复杂业务场景的需求。 二、参考回答: 在选择并设计数据仓库的数据模型时,我会主要考虑以下因素: 数据仓库工程师岗位面试真题及解析 含专业类面试问题和高频面试问题,共计30道 一、请你简单介绍一下你的数据仓库背景和经验。 考察点及参考回答:数据仓库工程师岗位面试问题 一、考察点: 1. 技术能力:面试官主要会通过应聘者的数据仓库背景和经验,考察应聘者是否具备扎实的数据库理论基础,是否熟悉常用的数据库系统(如MySQL、Oracle、SQL Server等),是否熟悉数据仓库和数据挖掘等相关技术。 2. 实践经验:面试官会对接应聘者过去的工作经历,是否参与过大规模的数据仓库建设,是否具有处理复杂数据和有效查询的能力,以及是否具有解决实际问题的经验。 3. 沟通协作能力:除了技术能力外,面试官还会考察应聘者的沟通协作能力,包括语言表达、问题解决和团队合作等方面的能力。 参考回答: 您好,我拥有丰富的数据仓库相关背景和经验。我毕业于知名大学,拥有计算机科学硕士学位,专攻数据库系统方向。在过去的几年中,我曾在某知名互联网公司担任数据仓库工程师,负责搭建和维护公司内部的数据仓库。在此期间,我积累了丰富的实践经验。首先,我熟悉常用的数据库系统,如MySQL、Oracle、SQL Server等,能够根据业务需求选择合适的数据库系统。其次,我参与过大规模的数据仓库建设,能够处理复杂数据并实现有效查询。最后,我具有解决实际问题的经验,能够根据业务需求设计数据模型和优化查询性能。在团队合作方面,我善于沟通、表达清晰,注重团队协作,相信这些经验将使我更好地完成数据仓库工程师的工作。 二、你如何理解数据仓库?你能描述一下数据仓库的主要功能吗? 考察点及参考回答:数据仓库工程师岗位面试问题 一、考察点: 1. 数据仓库的基本概念和功能:通过此问题,面试官将考察应聘者对数据仓库的 头条数据仓库面试题 一.选择题: 1.在数据挖掘的分析方法中,直接数据挖掘包括( ) * A 分类(正确答案) B 关联 C 估值(正确答案) D 预言(正确答案) 2.关于OLAP和OLTP的区别描述,不正确的是: ( ) [单选题] * A. OLAP主要是关于如何理解聚集的大量不同的数据.它与OLTP应用程序不同. B. 与OLAP应用程序不同,OLTP应用程序包含大量相对简单的事务. C. OLAP的特点在于事务量大,但事务内容比较简单且重复率高.(正确答案) D. OLAP是以数据仓库为基础的,但其最终数据来源与OLTP一样均来自底层的数据库系统,两者面对的用户是相同的 3. 数据仓库是随着时间变化的,下面的描述不正确的是 ( ) [单选题] * A. 数据仓库随时间的变化不断增加新的数据内容; B. 捕捉到的新数据会覆盖原来的快照; C. 数据仓库随事件变化不断删去旧的数据内容;(正确答案) D. 数据仓库中包含大量的综合数据,这些综合数据会随着时间的变化不断地进行重新综合. 4. 关于基本数据的元数据是指: ( ) [单选题] * A. 基本元数据与数据源,数据仓库,数据集市和应用程序等结构相关的信息; B. 基本元数据包括与企业相关的管理方面的数据和信息; C. 基本元数据包括日志文件和简历执行处理的时序调度信息; D. 基本元数据包括关于装载和更新处理,分析处理以及管理方面的信息.(正确答案) 5. OLAP技术的核心是: ( ) [单选题] * A. 在线性; B. 对用户的快速响应; C. 互操作性. D. 多维分析;(正确答案) 6. 关于OLAP的特性,下面正确的是: ( ) * (1)快速性(正确答案) (2)可分析性(正确答案) (3)多维性(正确答案) (4)信息性(正确答案) (5)共享性(正确答案) 7. 关于OLAP和OLTP的区别描述,不正确的是: ( ) [单选题] * A. OLAP主要是关于如何理解聚集的大量不同的数据.它与OTAP应用程序不同. B. 与OLAP应用程序不同,OLTP应用程序包含大量相对简单的事务. C. OLAP的特点在于事务量大,但事务内容比较简单且重复率高.(正确答案) D. OLAP是以数据仓库为基础的,但其最终数据来源与OLTP一样均来自底层的数据库系统,两者面对的用户是相同的. 8.数据仓库的特点分别是 ()。 A.面向主题(正确答案) B,集成(正确答案) C.长期存储 D,反映历史变化(正确答案) E,相对稳定(正确答案) 9.元数据是描述数据仓库内数据的结构和建立方法的数据,它为访问数据仓库提供了一个信息目录,根据数据用途的不同可将数据仓库的元数据分为( ) * 数据仓库岗位面试真题及解析 含专业类面试问题和高频面试问题,共计30道 一、什么是数据仓库?请简述数据仓库的主要特点和应用场景。 考察点及参考回答 问题:什么是数据仓库?请简述数据仓库的主要特点和应用场景。 考察点: 1. 数据仓库的基本概念和定义; 2. 数据仓库的主要特点; 3. 数据仓库的应用场景。 参考回答: 数据仓库是一个面向主题、集成、稳定和反映历史变化的数据集合,主要用于支持企业决策和查询分析。它主要具有以下几个特点: 1. 面向主题:数据仓库的数据是按照主题进行组织的,这些主题通常是企业高层管理者或数据分析人员关心的核心问题。 2. 集成:数据仓库中的数据来源于多个数据源,经过清洗和整合,形成一个集成环境中的数据。 3. 稳定:数据仓库中的数据通常不会经常更新,更多的是反映历史变化,为决策分析提供支持。 4. 反映历史变化:数据仓库包含了大量的历史数据,可以用于分析过去的状态和趋势,为决策提供有力支持。 数据仓库的应用场景非常广泛,主要应用于企业决策分析、市场分析、用户行为分析等领域。例如,企业可以根据数据仓库中的销售数据和市场数据,制定更加精准的营销策略;市场分析人员可以通过数据仓库中的用户行为数据,分析市场趋势和用户需求,为市场决策提供支持。总之,数据仓库是一个非常重要的岗位,需要具备扎实的数据库技术、数据分析能力和业务理解能力。 二、数据仓库中的数据是如何组织的?数据模型有哪些类型? 考察点及参考回答:数据仓库中的数据组织及数据模型 一、考察点: 1. 数据仓库的知识储备:面试者对数据仓库的基本概念和原理的理解程度。 2. 数据库设计能力:面试者对数据模型的设计方法和原则的掌握程度。 3. 逻辑思维与分析能力:面试者对数据组织途径的选择和优化的思考能力。 二、参考回答: 数据仓库中的数据组织途径主要取决于数据模型的选择。在数据模型中,主要有以下几种类型: 1. 星型模型(Star Schema):星型模型是一种常见的数据仓库模型,它通过将事实表与维度表连接来组织数据。星型模型的特点是维度表中的每个维度都包含了一组相关的数据,这些数据可以用来描述事实表中的数据。星型模型适用于描述性强、维度化程度高的数据集。 2. 雪花模型(Snowflake Schema):雪花模型是一种更为复杂的数据仓库模型,它通过将多个维度表和事实表组合在一起,形成了一个类似于雪花形状的数据结构。雪花模型适用于需要处理复杂关联关系的数据集,能够更好地支持多维分析和复杂查询。 3. 维度建模(Dimensional Modeling):维度建模是一种基于业务逻辑和用户需求的数据仓库设计方法,它通过将数据按照业务维度进行组织,使得用户能够方便地进行多维度查询和分析。这种模型适用于需要支持复杂查询和分析的数据集。 在实际应用中,选择哪种数据模型取决于数据的特点和用户需求,需要根据实际情况进行综合考虑和分析。同时,一个好的数据模型还需要考虑数据的完整性、一致性和可维护性等因素。 三、描述一下ETL(提取、转换、加载)过程的基本步骤。你如何确保这个过程的有效性和准确性? 考察点及参考回答:ETL过程的基本步骤及如何确保其有效性和准确性 一、考察点: 数据仓库面试题 问题1: in exists的区别not in和not exists的区别? 是一个集合运算符.a in (a, c, d, s, d-}这个运算中,前面是一个元素, 答案: n 后面是一个集合,集合中的元素类型是和前面的元素一样的.而exists是一个存在 判断,如果后面的查询中有结果,则exists为真,否则为假。 not in和not exi sts如果查询语句使用了not in那么内外表都进行全表扫描,没有用到索引;而not extsts的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。 总之: 尽量使用not exist ,避免使用not in not in会默认调用子查询 not exist会调用关联子查询 问题2:拉链表知道么? 答案:拉链表就是随着时间变迁产生历史数据。 拉链表的含义:就是记录历史。记录一个事务从开始一直到当前状态的所有变化信息。 问题3:数仓三层架构,具体每层作用? 答案: 1:数据访问层:主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据库的操作,而不是数据,具体为业务逻辑层或表示层提供数据服务。 2:业务逻辑层:主耍是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。 3:界面层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。 问题4:为什么叫星型模型和雪花模型? 答案: 星型模型是:多维表的数据关系,它由一个事实表和一组维表组成,每个维作为主键 雪花模型是:当一个或多个维没有直接连接到事实表上,而是通过其他维表连接到事实表上的时候,其图解就像雪花模型连接在一起、 使用场景:雪花模型使得维度分析更加容易,比如“针对特定的广告主,有哪些客户或者公司是在线的?”星形模型用来做指标分析更适合,比如“给定的一个客户他们的收入是多少?” 问题5:星型模型和雪花模型各自的优点? 答案: 数据仓库面试题 数据仓库是如今企业中不可或缺的一部分,它用于存储和管理大量的数据,并提供可靠且高效的分析和报告功能。为了在面试中更好地表现自己的能力,下面将介绍一些常见的数据仓库面试题及其详细解答。 1. 请解释什么是数据仓库? 数据仓库是一个用于集成、存储、管理和分析大量结构化和非结构化数据的系统。它用于支持企业决策和战略规划,通过提供高质量、一致和实时的数据帮助企业更好地理解自身业务。 2. 数据仓库和数据库的区别是什么? 数据库是一个用于组织和存储数据的系统,其主要目标是提供高效的数据访问。数据仓库则更加注重数据的集成和分析,它将来自不同数据源的数据进行整合,并提供决策支持的功能。 3. 数据仓库的架构有哪些主要组件? 数据仓库的主要组件包括:数据提取(Extraction)、数据转换(Transformation)、数据加载(Loading)、数据存储(Storage)和数据查询(Querying)。 - 数据提取:从不同的数据源中抽取数据,并进行清洗和转换以确保数据的质量和一致性。 - 数据转换:将提取的数据进行预处理、清洗和转换,以适应数据仓库的结构和标准。 - 数据加载:将转换后的数据加载到数据仓库中,以便后续的分析和报告。 - 数据存储:数据仓库通常使用多维数据库或列式数据库进行数据存储和管理。 - 数据查询:用户可以通过查询语言或报告工具对数据仓库中的数据进行查询和分析。 4. 请解释维度和事实表在数据仓库中的作用。 维度是数据仓库中用于描述业务过程的属性,例如时间、地点、产品等。维度表包含一个主键和与之关联的属性列。事实表包含了与业务过程相关的事实数据,例如销售额、数量等,并与维度表通过主键进行关联。 维度表和事实表共同构成了数据仓库中的星型或雪花模式结构。维度表提供了多维数据的上下文信息,而事实表包含了与业务过程相关的度量数据,通过联结维度表和事实表,可以进行复杂的多维分析和报表生成。 5. 数据仓库中的ETL过程是什么? ETL是“提取、转化和加载(Extract, Transform, Load)”的缩写,是数据仓库中非常重要的一环。 数据库工程师岗位面试题及答案 问题1:数据库范式化和反范式化之间的区别是什么?请举例说明。 答案:数据库范式化是将数据库设计拆分为多个关系以消除冗余数据,反范式化是为了提高查询性能而将数据合并到较少的表中。例如,一个订单系统中的订单表和产品表可以通过反范式化将产品信息嵌入到订单表中,从而避免频繁的表连接。 问题2:什么是ACID属性?在数据库事务中的作用是什么? 答案:ACID是数据库事务的四个属性,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这些属性确保了事务的可靠性和完整性,例如,当一个事务执行时,它要么完全执行,要么完全回滚,以保持数据库状态的一致性。 问题3:请解释数据库索引是什么,以及为什么在查询性能优化中如此重要? 答案:数据库索引是一种数据结构,用于加快数据库查询操作的速度。它类似于书中的目录,可以快速定位需要的数据行。索引在查询性能优化中至关重要,因为它可以减少数据扫描的开销,从而加快查询速度。然而,索引也会增加插入、更新和删除操作的开销,需要在设计时权衡使用。 问题4:在数据库中,什么是执行计划?如何分析和优化查询的执行计划? 答案:执行计划是数据库查询优化器生成的查询执行步骤的计划。它显示了查询如何通过索引和表扫描等操作来获取所需的数据。分析执行计划可以帮助我们理解查询的性能瓶颈,优化查询,如调整索引、重写查询逻辑或者调整数据库参数。 问题5:请解释数据库连接池是什么?它如何提高应用程序性能?答案:数据库连接池是一组预先创建的数据库连接,应用程序可以从中获取连接以执行数据库操作。连接池可以减少每次请求时建立和关闭数据库连接的开销,从而提高应用程序性能。它通过重复使用连接并限制并发连接数来降低数据库服务器的负载。 问题6:什么是数据库锁?请解释共享锁和排他锁的区别,并说明在什么情况下会使用它们。 答案:数据库锁用于控制并发访问数据库资源,以保证数据一致性。共享锁允许多个事务同时读取数据,但阻止写入。排他锁则阻止其他事务读取或写入被锁定的数据。在读多写少的情况下,可以使用共享锁提高并发性能;在写多的情况下,使用排他锁保证数据完整性。 问题7:请描述数据库备份和恢复的过程。你会采取哪些策略来确保数据的可靠性? 答案:数据库备份是将数据库数据复制到另一个位置以防止数据丢失,恢复是在数据损坏或丢失时将备份数据还原到原始状态。为确保数据可靠性,可以采取定期完全备份和增量备份,使用事 1商务智能 1.1数据仓库 1.1.1数据仓库的4大特点(特征)? 面向主题的,集成的,相对稳定的,反映历史变化的。 1.1.2数据仓库的四个层次体系结构? 1. 数据源 是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信 息。内部信息包括存放于RDBMS 中的各种业务处理数据和各类文档数据。外部信 息包括各类法律法规、市场信息和竞争对手的信息等等; 2. 数据的存储与管理 是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库 的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形 式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术 特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照 主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数 据仓库(通常称为数据集市) 3. OLAP 服务器 对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次 的分析,并发现趋势。其具体实现可以分为:ROLAP(关系型在线分析处理)、MOLAP (多维在线分析处理)和HOLAP (混合型线上分析处理)。ROLAP 基本数据和聚合 数据均存放在RDBMS 之中;MOLAP 基本数据和聚合数据均存放于多维数据库中; HOLAP 基本数据存放于RDBMS 之中,聚合数据存放于多维数据库中。 4. 前端工具 主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以数据挖掘及各 种基于数据仓库或者数据集市的应用开辟工具。其中数据分析工具主要针对OLAP 服务器,报表工具、数据挖掘工具主要针对数据仓库。 1.1.3描述一下联机分析处理OLAP?(维的概念,基本多维 操作,层次结构,与OLTP的区别) OLAP (联机分析处理On-Line Analytical Processing)也叫多维DBMS。 OLAP 是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直 目录 1简答题 (1) 1.1SQL Server与Oracle、DB2三种数据库比较 (1) 1.2以下三种数据库语言都包含哪些细项 (2) 1.3UNION 和UNION ALL的区别 (2) 2实例题................................................................................................................... 错误!未定义书签。3逻辑推理题 (5) 答案............................................................................................................................... 错误!未定义书签。1简答题 1.1 SQL Server与Oracle、DB2三种数据库比较 SQL Server与Oracle、DB2三种数据库进行比较,有何区别?请从开放性,可伸缩性,并行性,安全性三个方面叙述。 答案: 开放性 SQL Server 只能在Windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且Windows平台的可靠性,安全性和伸缩性是非常有限的。它不象Unix那样久经考验,尤其是在处理大数据量的关键业务时。 Oracle 能在所有主流平台上运行(包括 Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。 DBz 能在所有主流平台上运行(包括Windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。 可伸缩性,并行性 SQL Server 并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限。Oracle平行服务器通过使一组结点共享同一簇中的工作来扩展Window NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果WindowsNT不能满足需要, 用户可以把数据库移到UNIX中。 DB2 DB2具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点或数据库节点。 hive数据仓面试题 1. 请解释一下Hive是什么? Hive是一个基于Hadoop的数据仓库工具,它提供了类似于SQL的查询语言(HiveQL)来处理存储在Hadoop分布式文件系统(HDFS)中的大型数据集。Hive的设计目标是让那些熟悉SQL的用户能够轻松地使用Hadoop进行数据处理和分析。 2. Hive的主要组件有哪些? Hive的主要组件包括: - Hive客户端:用户通过Hive客户端与Hive进行交互,提交查询和操作。 - Hive元数据存储:Hive将元数据存储在关系型数据库中,如MySQL、PostgreSQL等。元数据包括表结构、分区信息等。 - Hadoop集群:Hive将数据存储在Hadoop分布式文件系统(HDFS)中,并通过MapReduce进行数据处理。 - Compiler:负责将HiveQL查询语句编译成底层的MapReduce任务。 - Executor:执行编译后的MapReduce任务,并将结果返回给客户端。 3. Hive如何实现数据仓库的功能? Hive通过以下途径实现数据仓库的功能: - 数据抽象:Hive将底层的HDFS文件抽象为表,用户可以像操作关系型数据库一样操作这些表。 - 数据集成:Hive支持多种数据源,如关系型数据库、文本文件、日志文件等,可以将不同来源的数据集成到一个统一的数据仓库中。 - 数据转换:Hive支持用户自定义函数(UDF),可以对数据进行清洗、转换等操作,以满足不同的分析需求。 - 数据分析:Hive提供了类似于SQL的查询语言(HiveQL),用户可以使用SQL语句进行数据分析,如SELECT、JOIN、GROUP BY等。- 数据可视化:Hive可以将分析结果导出到其他工具,如Excel、Tableau等,进行数据可视化展示。 4. Hive如何处理大规模数据? 仓库数据员面试题目及答案 一、问题描述 在仓库管理中,数据员扮演着非常重要的角色。他们负责记录、整 理和维护仓库的相关数据,为仓库管理人员提供准确、及时的信息支持。为了招聘合适的仓库数据员,以下是一些常见的面试题目及答案。 二、面试题目及答案 1. 数据员在仓库管理中扮演什么样的角色? 答:数据员在仓库管理中负责记录、整理和维护仓库的相关数据。 他们需要准确地记录入库和出库的货物数量、规格、质量等信息,并 及时更新仓库系统。数据员的工作对于仓库管理人员的决策具有重要 的支持作用。 2. 请描述你在以往工作中处理大量数据的经验。 答:我之前在一家大型仓库工作过,负责每天处理大量的入库和出 库数据。我熟练掌握Excel等办公软件,能够快速、准确地录入和整理 数据。同时,我也能够根据需要生成各种数据报表和分析图表,为仓 库管理人员提供决策支持。 3. 数据员在处理数据时需要注意哪些方面? 答:在处理数据时,数据员需要具备高度的准确性和细致性。他们 不能随意修改数据,必须遵循统一的记录规范和操作流程。此外,数 据员需要保证数据的安全性,避免数据泄露或损坏。 4. 仓库管理中的数据分类有哪些? 答:仓库管理中的数据可以按照不同的角度进行分类,主要包括:- 入库数据:包括货物的名称、数量、规格、质量等信息。 - 出库数据:包括货物的出库时间、目的地、运输方式等信息。 - 库存数据:包括仓库中各类货物的当前库存量。 - 货物追踪数据:包括货物从进入仓库到出库的整个流程记录。 - 损耗数据:包括货物在仓库过程中的损耗情况统计等。 5. 如何处理数据中的错误或异常情况? 答:当发现数据中存在错误或异常情况时,数据员应及时通知仓库管理人员,并协调相关人员进行核实和修正。此外,数据员需要保留原始数据和修改记录,以便数据审查和追溯。 6. 你如何保证数据的安全和机密性? 答:保证数据安全和机密性是数据员的重要职责。我会严格遵守公司的数据保密规定,确保数据的存储和传输过程中没有泄露风险。我会采取适当的措施备份数据,以防止数据丢失或损坏。 7. 如何应对高压力的工作环境? 答:仓库数据员的工作常常需要在高压力的环境下完成。我会保持良好的工作态度,合理安排工作时间,并与团队成员紧密协作,共同 第四范式 数据仓库工程师岗位面试真题及解析 含专业类面试问题和高频面试问题,共计25道 一、请简要介绍一下您的教育背景和工作经历。 考察点: 1. 应聘者的教育背景和工作经历,了解其专业技能和工作经验。 2. 应聘者的自我表达能力,观察其沟通能力和自我评价。 3. 应聘者对过往经历的理解和总结,了解其思考问题和解决问题的能力。 面试参考回答话术: 尊敬的面试官,您好!非常感谢您给我这个机会来介绍自己的教育背景和工作经历。 我本科毕业于 XX 大学计算机科学与技术专业,在大学期间,我通过课堂学习和实践项目,掌握了坚实的计算机基础知识。我还积极参加课外活动,担任了学生会干部,锻炼了我的团队协作和沟通能力。 毕业后,我进入了 XX 公司担任软件开发工程师。在这份工作中,我负责开发和维护公司的一款在线教育产品。通过这个项目,我积累了丰富的软件开发经验,了解了软件开发的全流程,提高了自己的编程能力和问题解决能力。此外,我还参与了公司的多个项目,涵盖了移动端应用开发、大数据处理等领域,让我对不同技术领域有了更全面的了解。 后来,我跳槽到 XX 公司,担任数据仓库工程师。在这个职位上,我负责设计和维护公司的数据仓库,为业务部门提供数据支持。通过这个工作,我深入了解了数据仓库的原理和架构,掌握了 ETL 开发、数据建模、SQL 优化等技术。此外,我还参与了公司的大数据平台建设,学习了大数据技术,如 Hadoop、Spark 等,并将其应用到实际项目中。 总的来说,我的教育背景和工作经历使我具备了扎实的计算机基础知识和丰富的 工作经验。我相信,这些经历将有助于我更好地胜任这个数据仓库工程师职位,为贵公司做出贡献。再次感谢您给我这个机会,期待加入贵公司的团队。 二、您是如何理解数据仓库工程师这个职位的? 数据仓库工程师是负责设计、构建和维护数据仓库的专业人员。他们需要具备丰富的数据仓库架构和数据建模知识,以及一定的编程和数据库管理技能。数据仓库工程师的主要职责包括: 1. 数据仓库架构设计:数据仓库工程师需要根据企业需求,设计合适的数据仓库架构,包括数据源、数据存储、数据处理和数据展示等环节。他们需要考虑数据仓库的可靠性、可扩展性和可维护性等因素,以确保数据仓库能够满足企业不断变化的需求。 2. 数据建模和数据处理:数据仓库工程师需要对原始数据进行清洗、转换和汇总等处理,以满足数据仓库的需求。他们需要熟练掌握数据建模和数据处理技术,以确保数据的准确性、完整性和一致性。 3. 数据仓库维护和管理:数据仓库工程师需要负责数据仓库的日常维护和管理,包括数据备份、数据恢复、性能优化和故障排查等工作。他们需要具备一定的编程和数据库管理技能,以确保数据仓库的稳定运行。 面试参考回答话术: 数据仓库工程师是负责设计、构建和维护数据仓库的专业人员,需要具备丰富的数据仓库架构和数据建模知识,以及一定的编程和数据库管理技能。数据仓库工程师的主要职责包括: 1. 数据仓库架构设计:数据仓库工程师需要根据企业需求,设计合适的数据仓库架构,包括数据源、数据存储、数据处理和数据展示等环节。他们需要考虑数据仓库的可靠性、可扩展性和可维护性等因素,以确保数据仓库能够满足企业不断变化的需求。 Oracle数据库DBA面试题及答案_经典 1.OracleDBA面试题之一解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。 冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令 4. OracleDBA面试题:解释data block , extent 和 segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents 被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1、DESCRIBE命令 2、DBMS_METADATA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而 1.OracleDBA面试题之一解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。 冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令 4. OracleDBA面试题:解释data block , extent 和 segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents 被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1、DESCRIBE命令 2、DBMS_METADATA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作需要rollback segment 且花费较长时间. 8. 使用索引的理由 解答:快速访问表中的data block 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的信息 云数据仓库高级内核工程师岗位面试题及答案 1.介绍一下你在云数据仓库领域的经验。 答:我在过去五年中,一直从事云数据仓库的设计、开发和优化工作。我曾在ABC公司主导了一个数据仓库迁移到云端的项目,通过使用虚拟化技术,成功减少了成本和维护工作量,同时提升了性能和可伸缩性。 2.在云数据仓库中,如何处理大规模数据的批处理和实时处理?答:对于批处理,我通常会使用分布式计算框架,如ApacheHadoop或Spark,以支持大规模数据处理。而实时处理则会借助流式处理引擎,如ApacheKafka和Flink,确保数据能够在毫秒级别内被处理和分析,比如我们在项目中利用Kafka流式处理用户行为数据,以实时生成推荐结果。 3.如何确保云数据仓库的数据安全性? 答:我会采用多层次的安全措施,包括访问控制、加密、身份验证等。另外,使用基于角色的访问控制可以确保只有经过授权的用户才能访问敏感数据。例如,我在上一个项目中,使用了基于身份的数据加密和访问控制,以保护客户隐私。 4.在处理多样化的数据源时,你会如何进行数据集成? 答:我会选择适合的ETL工具,如ApacheNiFi或Talend,以将不同源头的数据整合到数据仓库中。此外,我也会考虑使用数据湖架构,将原始数据以原样存储,以便后续处理和分析。例如, 我们在一个医疗健康项目中,将来自医院设备的结构化和来自传感器的非结构化数据整合在一个数据湖中,以支持综合分析。5.如何优化查询性能以应对复杂的分析需求? 答:在查询性能优化方面,我会使用分区、索引和列存储等技术来提高查询效率。此外,我会定期进行性能调优,通过分析查询计划来找到瓶颈并进行相应的调整。举个例子,我在一个电子商务项目中,通过在大型事实表上应用列存储,将查询性能提升了50%以上。 6.请分享你在容灾和备份方面的经验。 答:我会采用多区域部署、跨区域备份和冷热数据分离等策略来确保容灾和备份。例如,我们在一个金融项目中,将数据仓库部署在两个地理区域,并使用实时数据同步来保证数据一致性,以应对区域性故障。 7.在面对高并发情况下,如何保证数据仓库的稳定性? 答:我会进行负载测试,确保系统在高负载情况下能够稳定运行。同时,我会利用自动伸缩和资源预留等策略,确保系统能够根据需求动态调整资源。以前的一个零售项目中,我们在促销活动期间通过自动伸缩,成功应对了高并发访问。 8.请描述一次你在处理数据质量问题时的经验。 答:我曾在一个电信项目中遇到过数据质量问题,数据源的格式和内容存在较大差异。我首先制定了数据清洗流程,通过数据规范化、去重和填充等方法,提升了数据质量。随后,我引入了数 Failure is not terrible. The terrible thing is that I have never worked hard and comforted myself comfortably. Even a little regret is covered by numbness.悉心整理祝您一臂之力(WORD文档/A4打印/可编辑/页眉可删) 数据仓库面试题及答案 Student(S#,Sname,Sage,Sse-x) 学生表 S#:学号;Sname:学生姓名;Sage:学生年龄;Sse-x:学生性别 Course(C#,Cname,T#) 课程表 C#,课程编号;Cname:课程名字;T#:教师编号 SC(S#,C#,score) 成绩表 S#:学号;C#,课程编号;score:成绩 Teacher(T#,Tname) 教师表 T#:教师编号; Tname:教师名字 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.scoreb.score and a.s#=b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) 60; 3、查询所有同学的学号、姓名、选课数、总成绩; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.S#,Student.Sname from Student数据仓库面试题
Oracle数据库DBA面试题50道及答案_经典
25题数据仓库架构师岗位常见面试问题含HR问题考察点及参考回答
30题数据仓库工程师岗位常见面试问题含HR问题考察点及参考回答
头条数据仓库面试题
30题数据仓库岗位常见面试问题含HR问题考察点及参考回答
数据仓库面试题
数据仓库面试题
数据库工程师岗位面试题及答案(经典版)
数据仓库、商业智能相关面试题(带答案)
数据仓库团队面试题-答案
hive数据仓面试题
仓库数据员面试题目及答案
25道第四范式数据仓库工程师岗位常见面试问题含HR常问问题考察点及参考回答
Oracle数据库DBA面试题及答案_经典
Oracle数据库DBA面试题及答案_经典
云数据仓库高级内核工程师岗位面试题及答案(经典版)
2021年数据仓库面试题及答案