DW-BI_数据库面试题

合集下载

关于数据库的面试题

关于数据库的面试题

关于数据库的面试题数据库面试题通常是在职场招聘过程中出现的一种常见形式,旨在考察应聘者对数据库基本知识的掌握程度以及解决问题的能力。

下面,我们将针对数据库面试常见题目进行探讨和解答。

一、数据库基础知识1. 什么是数据库?数据库是指按照数据模型组织、描述和存储数据的仓库。

它可以实现数据的高效管理和处理,方便用户存储、访问和维护数据。

2. 数据库中的 ACID 是什么含义?ACID 是指数据库处理事务的四个基本特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

3. 数据库事务的特征是什么?事务具有四个特征,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

原子性指事务的所有操作要么全部执行成功(提交),要么全部失败(回滚);一致性要求事务在执行前后数据库的完整性约束没有被破坏;隔离性保证多个并发事务相互不影响;持久性要求事务一旦提交,对数据库的修改就是永久性的。

4. OLTP 和 OLAP 的区别是什么?OLTP(Online Transaction Processing)是指支持日常业务操作的在线事务处理。

它的特点是对事务的响应时间要求高,需要对同时执行的事务进行并发控制和访问控制。

而 OLAP(Online Analytical Processing)是指支持复杂的分析操作的在线分析处理。

它的特点是针对大规模数据进行复杂分析,要求查询响应时间不太敏感,注重数据的决策支持。

5. 索引的作用是什么?索引是数据库中用于加快数据检索速度的数据结构。

它可以通过创建索引,将数据按照某种规则进行排序和组织,从而减少数据库的扫描量,提高查询效率。

二、数据库设计与规范1. 请简述什么是数据库范式?数据库范式是一种理论模型,用于描述关系数据库中数据的组织形式和处理规则。

数据库工程师面试题及答案(全)

数据库工程师面试题及答案(全)

数据库工程师面试题及答案1.请简要介绍你对数据库的理解以及你的数据库工作经验?答:数据库是一种可以存储、管理和检索数据的软件系统。

作为一名数据库工程师,我的主要工作职责包括设计和管理数据库系统、调优和优化数据库性能、实现数据备份和恢复、确保数据安全和隐私保护等。

我拥有多年的数据库工作经验,擅长使用MySQL、Oracle、SQL Server等数据库管理系统,对SQL语言和数据库优化有深入的了解。

2.请介绍一下数据库索引的原理和常用类型?答:数据库索引是一种数据结构,可以加速数据检索的速度和效率。

常见的索引类型包括B+树索引、哈希索引、全文索引等。

其中,B+树索引是最常用的索引类型,它采用平衡树结构来存储数据,可以支持快速的范围查找和排序操作。

哈希索引是一种使用哈希函数将数据映射到索引中的索引类型,可以支持快速的精确查找操作。

全文索引是一种可以在文本中进行模糊匹配的索引类型,可以支持全文搜索和关键词查询。

3.请介绍一下数据库事务的概念和ACID特性?答:数据库事务是一组需要被看作为一个单独的操作执行的SQL语句集合。

为了确保数据的完整性和一致性,事务需要满足ACID特性。

ACID是指原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

⏹原子性:事务中的所有操作要么全部执行成功,要么全部失败,不存在中间状态。

⏹一致性:事务执行前后,数据库中的数据保持一致性状态。

⏹隔离性:事务之间的操作互相隔离,一个事务的执行不应该影响其他事务。

⏹持久性:事务执行成功后,其所做的修改应该被持久化存储,不会因为系统故障等原因丢失。

4.请简述一下数据库优化的方法和技巧?答:数据库优化是提高数据库性能和响应速度的重要手段,常用的方法和技巧包括:⏹合理设计和优化数据库结构,避免冗余和无用数据。

⏹创建适当的索引,加快数据检索速度。

⏹使用分区表,优化大数据表的查询速度。

数据仓库常见面试问题

数据仓库常见面试问题

数据仓库常见⾯试问题
数据仓库主要⼯作就是模型设计;
1、数仓建模⽅法:范式建模、维度建模、Data Vault; 各⾃优缺点?
2、维度建模的三种⽅式:星型模式、雪花模式、星座模式
3、分层架构:ODS、DW(DW数据分层,由下到上为 DWD,DWB,DWS)、ADS
4、缓慢变化维与退化维;处理缓慢变化维的⽅式(拉链表,拉链表能实现保存历史快照,去除重复数据,节约空间)
5、维度建模过程?
6、事实表有哪些?各⾃含义?
事务型事实表(其中事务的含义?
⼀⾏数据。

⼀旦事务被提交,事实表数据被插⼊,数据就不再进⾏更改,其更新⽅式为增量
更新。

事实的含义?--术语表⽰的是业务事件的度量值(可统计次数、个数、件数、⾦额等))
周期型事实表
不会保留所有数据只保留固定时间间隔的数据,例如每天或者每
⽉的销售额,或每⽉的账户余额等。

稠密(例如当天没发⽣交易,也会记录数据)
累积型事实表
累计快照事实表⽤于跟踪业务事实的变化。

例如,数据仓库中可能需要累积或者存储订
单从下订单开始,到订单商品被打包、运输、和签收的各个业务阶段的时间点数据来跟踪订
单声明周期的进展情况。

当这个业务过程进⾏时,事实表的记录也要不断更新。

参考。

数据库系统工程师招聘面试题与参考回答2025年

数据库系统工程师招聘面试题与参考回答2025年

2025年招聘数据库系统工程师面试题与参考回答(答案在后面)面试问答题(总共10个问题)第一题题目:请描述一下数据库系统的基本组成部分,并解释每个组成部分的作用。

第二题问题:请简述事务的ACID特性,并详细解释这四个特性在数据库操作中的具体含义及其重要性。

第三题题目:数据库系统工程师在处理并发控制时,常常会遇到死锁问题。

请简要解释什么是死锁?在你的实际工作经验中,你是如何预防和解决死锁问题的?第四题题目:请解释什么是ACID属性,并简要说明这些属性在数据库事务处理中的重要性。

第五题题目:请简要描述数据库系统工程师在保证数据库安全方面需要关注的几个关键点,并说明如何在实际工作中进行风险预防和应对。

第六题题目:请解释一下什么是数据库索引,并描述几种常见的索引类型及其应用场景。

请给出相应的例子和优缺点分析。

第七题题目描述:请描述一下你对于一个复杂数据查询优化的思路,并举例说明你曾经优化过的一个具体案例。

第八题题目:请解释ACID属性在数据库事务中的含义,并举例说明如何确保一个事务满足这些属性?第九题题目:请简述数据库索引的作用及其类型,并说明为什么在某些情况下,即使不使用索引也能快速检索到数据。

第十题题目:请描述一下你如何设计一个适用于高并发场景下的数据库读写分离架构,并说明其中的关键技术和解决方案。

2025年招聘数据库系统工程师面试题与参考回答面试问答题(总共10个问题)第一题题目:请描述一下数据库系统的基本组成部分,并解释每个组成部分的作用。

答案:数据库系统主要由以下几部分组成:1.数据库:数据库是存储数据的集合,它包含了组织中的所有结构化数据。

数据库中的数据是按照某种数据模型组织起来的,如关系模型、对象模型等。

2.数据库管理系统(DBMS):DBMS是负责管理和操纵数据库的软件系统。

它提供了创建、查询、更新、删除数据库中数据的功能,同时也负责数据的安全性、完整性、并发控制和恢复。

3.数据库管理员(DBA):DBA是负责数据库的日常维护、性能优化、备份和恢复的专业人员。

数据库面试题目及答案

数据库面试题目及答案

数据库面试题目及答案数据库面试是程序员求职过程中必不可少的一部分。

在面试中,面试官通常会提出各种与数据库相关的问题,以考察面试者对数据库的理解和应用能力。

本文将介绍一些常见的数据库面试题目,并提供相应的答案,希望能帮助读者在面试中取得好成绩。

1. 什么是数据库?答案:数据库是存储和组织数据的集合。

它是一个可以持久存储的数据集合,可以通过各种操作进行管理和访问。

2. 什么是关系型数据库?答案:关系型数据库是基于关系模型的数据库管理系统。

它使用表(关系)来组织数据,并通过主键和外键等约束保持表之间的关联性。

3. 什么是主键?答案:主键是一个唯一标识符,用于唯一地标识关系中的每一行。

它可以是一个或多个列,并且不允许有重复的值。

4. 什么是外键?答案:外键是关系模型中用来建立表之间关系的一种机制。

它用于在一个表中引用另一个表的主键。

5. 什么是索引?答案:索引是为了提高数据库查询性能而创建的数据结构。

它可以加快数据的查找速度,类似于书籍的目录。

6. 请解释一下数据库范式?答案:数据库范式是创建和规范化数据库表的一种方法。

它分为不同的级别(第一范式、第二范式、第三范式等),每个级别都有一些规则,用于减少数据冗余和提高数据的完整性。

7. 什么是事务?答案:事务是一系列数据库操作的集合,它们要么全部执行成功,要么全部回滚。

事务具有四个特性,即原子性、一致性、隔离性和持久性(ACID)。

8. 请解释一下数据库的ACID原则?答案:ACID是指数据库事务的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

原子性指事务要么全部执行成功,要么全部回滚;一致性指事务在执行之前和之后数据库的状态必须保持一致;隔离性指多个事务之间应该相互隔离,互不干扰;持久性指一旦事务提交,其结果将永久保存在数据库中。

9. 什么是数据库连接池?答案:数据库连接池是一种管理和复用数据库连接的机制。

数据库面试题大全

数据库面试题大全

数据库面试题大全以下是一些常见的数据库面试题目:1. 什么是数据库?请简要描述数据库的基本概念。

2. 请解释一下关系型数据库和非关系型数据库的区别。

3. 什么是SQL?请简要描述SQL的作用和用途。

4. 什么是主键和外键?请举例说明它们在数据库中的作用。

5. 什么是索引?请简要描述索引的作用和优缺点。

6. 请解释一下事务的概念,以及事务的隔离级别。

7. 请解释一下数据库的连接池和它的作用。

8. 什么是数据库触发器?请简要描述触发器的作用和用途。

9. 什么是存储过程?请简要描述存储过程的作用和用途。

10. 什么是视图?请简要描述视图的作用和用途。

11. 请解释一下数据库的规范化,以及规范化的好处。

12. 请解释一下数据库的性能优化,以及如何进行性能优化。

13. 请描述一下你如何处理数据库中的重复数据。

14. 什么是数据库备份和恢复?请简要描述备份和恢复的方法。

15. 请解释一下数据库的并发控制,以及并发控制的方法。

16. 请解释一下数据库的分区,以及分区的好处。

17. 什么是数据库的乐观锁和悲观锁?请简要描述它们的区别和用途。

18. 请解释一下数据库的日志和日志的重要性。

19. 什么是数据库的联接?请简要描述不同类型的联接(如内联接、左外联接、右外联接、全外联接等)。

20. 请解释一下数据库的索引,以及如何使用索引来提高查询性能。

21. 请解释一下数据库的性能优化,以及如何进行性能优化。

22. 什么是数据库的安全性?如何保证数据库的安全性?23. 请解释一下数据库的视图,以及视图的用途和优点。

24. 什么是数据库的游标?游标在数据库中有什么用途?25. 请解释一下数据库的存储过程和函数,以及它们的用途和优点。

计算机数据库面试题及答案

计算机数据库面试题及答案

计算机数据库面试题及答案一、数据库基础知识数据库是指按照一定数据模型组织、存储、管理和维护数据的集合,是计算机应用中的重要组成部分。

在数据库面试中,一些基础的知识是经常会被问到的,下面是一些常见的数据库基础知识面试题及答案。

1. 数据库的三个基本概念是什么?答:数据库、数据库管理系统(DBMS)、数据库应用程序。

2. 数据库管理系统的作用是什么?答:数据库管理系统用于管理数据库,包括数据的存储、检索、安全性、完整性、并发控制等方面。

3. 什么是SQL?它的作用是什么?答:SQL(Structured Query Language)是一种标准的数据库查询语言,用于与关系型数据库进行交互。

通过SQL语句,可以对数据库进行增删改查等操作。

4. 主键和外键的作用是什么?有何区别?答:主键用于唯一标识数据库表中的记录,其值必须唯一且不能为空。

外键用于建立不同表之间的关联关系,引用其他表的主键作为自身的外键。

主键和外键的区别在于主键是唯一标识,而外键是用于表之间的关联。

5. 什么是事务?ACID是指什么?答:事务是指作为单个逻辑工作单元执行的一系列操作。

ACID是事务的特征,具体指原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

二、数据库设计与规范数据库设计是指根据应用需求,将现实世界中的数据描述成数据库表、字段等形式的过程。

在数据库设计与规范的面试中,以下是一些可能会被问到的问题和答案。

1. 数据库设计的步骤有哪些?答:数据库设计的步骤包括需求分析、概念设计、逻辑设计、物理设计和测试与优化等。

2. ER图是什么?有何作用?答:ER图(Entity-Relationship Diagram)是用于描述各种实体及其之间关系的图形化工具。

它可以帮助开发人员明确表之间的关联关系,有助于数据库设计与理解。

3. 数据库的范式有哪些?请简要介绍一下第一、第二和第三范式。

BW 面试问题分类汇总

BW 面试问题分类汇总

基础面试问题:1.BW扩展星型结构和传统的星型结构相比有哪些优势?回答:标准星型模型是数据仓库中一种常用的组织信息和数据的多维数据模型。

它由中心的一个事实表(Fact Table)和一些围绕它的维度表(Dimensional Table)组成。

SAP BW星型模型 SAP在标准星型模型基础上做了一些改进,将维度表中的主数据(Master Data)分离出去,独立建表,并通过SID Table和维度表关联起来。

SAP将主数据分为3类:属性(Attributes),文字描述(Text),层级结构(Hierarchy)。

这里需要注意的是Master Data 并不是InfoCube 的一部分,因此Master Data可以在多个InfoCube中共享。

这是BW将Master Data从维度表分离出来的主要原因之一。

我们知道MOLAP数据仓库为了提高Aggregation的效率,需要事先把这些Aggregation的值计算好,而不是在每次请求的时候才计算。

这些预先计算好的Aggregation值当然也需要以cube的形式保存起来。

如果是用标准星型模型,那么有两种方法来存储:一种是将Aggregation值和facts一起保存在原始cube的事实表中,这样事实表就会更加庞大,查询效率肯定不高。

另一种是为不同的Aggregation建立独立的aggregation cube,存在这写新的cube中,但这样会造成维度表的冗余,每个aggregation cube都会重复一份它所需要的维度表中的所有信息。

现在BW将Master Data从维度表分离出来使得维度表变成一张简单的关系表,就解决了Master Data的冗余问题。

同时由于Master Data不是和维度表绑在一起而是通过SID Table查询得到,使得多语言支持非常方便。

可以为每种语言建立独立的主数据表并根据查询时的语言信息动态绑定到不同语言的主数据表。

数据库面试题及答案

数据库面试题及答案

数据库面试题及答案1、面向对象的特征有哪些方面?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。

抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。

抽象包括两个方面,一是过程抽象,二是数据抽象。

2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。

对象的一个新类可以从现有的类中派生,这个过程称为类继承。

新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。

派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。

面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

4.多态性:多态性是指允许不同类的对象对同一消息作出响应。

多态性包括参数化多态性和包含多态性。

多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

2、String是最基本的数据类型吗?基本数据类型包括byte、int、char、long、float、double、boolean和short。

ng.String类是final类型的,因此不可以继承这个类、不能修改这个类。

为了提高效率节省空间,我们应该用StringBuffer类3、int和Integer有什么区别Java提供两种不同的类型:引用类型和原始类型(或内置类型)。

Int是java的原始数据类型,Integer是java为int提供的封装类。

Java为每个原始类型提供了封装类。

原始类型封装类booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble引用类型和原始类型的行为完全不同,并且它们具有不同的语义。

数据库笔试面试题

数据库笔试面试题

数据库笔试面试题1. 介绍数据库的基本概念和作用(200字)数据库是用于存储、管理和组织大量结构化数据的系统。

它可以提供数据的可靠性、一致性和持久性,并支持数据的高效查询和操作。

数据库可以用于各个领域,如企业管理、科学研究、金融等,它在信息化社会中扮演着重要的角色。

2. 请简述主键、外键和唯一键的区别(200字)主键是用于唯一标识数据库表中每一条记录的字段,它的值必须在表中唯一且不能为空。

主键可以用于建立表之间的关联关系,保证数据的一致性和完整性。

外键是用于建立表之间的关联关系的字段,它引用了其他表的主键作为自己的值。

通过外键,可以实现表与表之间的关联查询,保证数据的一致性和完整性。

唯一键是在表中的某个字段上设置的约束,保证该字段的值在整个表中是唯一的。

唯一键的字段可以有重复值,但是表中的所有记录的该字段值不能重复。

3. 请解释事务的概念,并介绍ACID特性(200字)事务是指一系列数据库操作组成的逻辑工作单元,它要么全部执行成功,要么全部不执行。

事务可以保证数据库的完整性和一致性,并支持并发操作。

ACID是指数据库事务应具备的特性,包括:- 原子性(Atomicity):事务的操作要么全部成功完成,要么全部回滚,不存在部分完成的情况。

- 一致性(Consistency):事务的执行要使数据库从一种一致性状态转变为另一种一致性状态,不会破坏数据库的完整性约束。

- 隔离性(Isolation):多个并发执行的事务之间应该相互隔离,互不干扰,保证每个事务都感知不到其他事务的存在。

- 持久性(Durability):事务一旦提交成功,其修改的数据将被永久保存在数据库中,即使发生故障也不会丢失。

4. 数据库的索引是什么?请描述常见的索引类型(400字)数据库的索引是一种数据结构,用于提高数据库查询操作的效率。

索引可以视为目录,它按照特定的排序方式将数据关联到对应的位置。

常见的索引类型包括:- B树索引:采用平衡多路查找树的数据结构,适用于范围查询和精确查找,适合于等值查询。

关于数据库的面试题

关于数据库的面试题

关于数据库的面试题1. 数据库基础知识数据库是用于管理和存储数据的系统。

以下是一些数据库的基础知识面试题:1.1 数据库是什么?数据库是一个组织和存储数据的系统。

它支持数据的增删改查操作,并提供了安全性、完整性和一致性的保证。

1.2 数据库管理系统(DBMS)是什么?数据库管理系统是一种软件,用于管理数据库。

它提供了对数据的访问、控制和组织,并确保数据库的安全性和完整性。

1.3 数据库的三个基本操作是什么?数据库的三个基本操作是增加(Insert)、删除(Delete)和修改(Update)数据。

其中,查询(Query)也是一种常见的操作。

1.4 什么是表?表是数据库中存储数据的结构。

它由行和列组成,行表示记录,列表示字段。

每个表都有一个唯一的表名,并且每个表可以有多个列。

1.5 什么是主键?主键是表中用于唯一标识记录的字段。

它的值在表中必须是唯一的,并且不能为空。

2. SQL语言SQL(结构化查询语言)是用于与数据库进行交互的标准语言。

2.1 什么是SQL?SQL是结构化查询语言,用于管理和操作关系型数据库。

它允许用户定义数据库结构、操作数据库对象以及查询和操纵数据。

2.2 SQL中常见的命令有哪些?常见的SQL命令包括SELECT、INSERT、UPDATE、DELETE、CREATE TABLE、ALTER TABLE、DROP TABLE等。

2.3 SELECT语句的作用是什么?SELECT语句用于从数据库中选择和返回数据。

它可以在表中执行查询操作,并返回满足查询条件的记录。

2.4 什么是WHERE子句?WHERE子句用于在SELECT语句中指定查询条件。

它允许用户使用条件来过滤查询结果,只返回满足条件的记录。

2.5 什么是JOIN操作?JOIN操作用于将多个表中的数据进行关联。

它通过匹配两个或多个表中的共同列,将它们的行连接起来,并返回关联后的结果。

3. 数据库设计数据库设计是指设计数据库表的结构、关系和规范,以满足用户需求。

数据库面试问题及答案

数据库面试问题及答案

数据库面试问题及答案数据库面试问题有哪些呢?哪些在提名在数据库面试过程中经常遇到呢?下面小编就给大家整理了数据库面试问题及答案,我们一起来看看吧!数据库面试问题及答案Student(stuId,stuName,stuAge,stuSex) 学生表stuId:学号;stuName:学生姓名;stuAge:学生年龄;stuSex:学生性别Course(courseId,courseName,teacherId) 课程表courseId,课程编号;courseName:课程名字;teacherId:教师编号Scores(stuId,courseId,score) 成绩表stuId:学号;courseId,课程编号;score:成绩Teacher(teacherId,teacherName) 教师表teacherId:教师编号; teacherName:教师名字问题:1、查询“001”课程比“002”课程成绩高的所有学生的学号;select a.stuId from (select stuId,score from Scores where courseId='001') a,(select stuId,scorefrom Scores where courseId='002') bwhere a.score>b.score and a.stuId=b.stuId;2、查询平均成绩大于60分的同学的学号和平均成绩;select stuId,avg(score)from Scoresgroup by stuId having avg(score) >60;3、查询所有同学的学号、姓名、选课数、总成绩;selectStudent.stuId,Student.stuName,count(Scores.courseId),sum(scor e)from Student left Outer join Scores on Student.stuId=Scores.stuIdgroup by Student.stuId,stuName4、查询姓“李”的老师的个数;select count(distinct(teacherName))from Teacherwhere teacherName like '李%';5、查询没学过“叶平”老师课的同学的学号、姓名;select Student.stuId,Student.stuNamefrom Studentwhere stuId not in (select distinct( Scores.stuId) from Scores,Course,Teacher where Scores.courseId=Course.courseId and Teacher.teacherId=Course.teacherId and Teacher.teacherName='叶平');6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;select Student.stuId,Student.stuName from Student,Scores where Student.stuId=Scores.stuId and Scores.courseId='001'and exists( Select * from Scores as Scores_2 where Scores_2.stuId=Scores.stuId and Scores_2.courseId='002');7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select stuId,stuNamefrom Studentwhere stuId in (select stuId from Scores ,Course ,Teacher where Scores.courseId=Course.courseId and Teacher.teacherId=Course.teacherId and Teacher.teacherName='叶平' group by stuId having count(Scores.courseId)=(select count(courseId) from Course,T eacher where Teacher.teacherId=Course.teacherId and teacherName='叶平'));8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;Select stuId,stuName from (select Student.stuId,Student.stuName,score ,(select score from Scores Scores_2 where Scores_2.stuId=Student.stuId and Scores_2.courseId='002') score2from Student,Scores where Student.stuId=Scores.stuId and courseId='001') S_2 where score2<score;9、查询所有课程成绩小于60分的同学的学号、姓名;select stuId,stuNamefrom Studentwhere stuId not in (select Student.stuId from Student,Scores where S.stuId=Scores.stuId and score>60);10、查询没有学全所有课的同学的学号、姓名;select Student.stuId,Student.stuNamefrom Student,Scoreswhere Student.stuId=Scores.stuId group by Student.stuId,Student.stuName having count(courseId) <(select count(courseId) from Course);11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;select stuId,stuName from Student,Scores where Student.stuId=Scores.stuId and courseId in select courseId from Scores where stuId='1001';12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;select distinct Scores.stuId,stuNamefrom Student,Scoreswhere Student.stuId=Scores.stuId and courseId in (select courseId from Scores where stuId='001');13、把“Scores”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;Scores set score=(select avg(Scores_2.score)from Scores Scores_2where Scores_2.courseId=Scores.courseId ) from Course,Teacher where Course.courseId=Scores.courseId and Course.teacherId=Teacher.teacherId and Teacher.teacherName='叶平');14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;select stuId from Scores where courseId in (select courseId from Scores where stuId='1002')group by stuId having count(*)=(select count(*) from Scores where stuId='1002');15、删除学习“叶平”老师课的Scores表记录;Delect Scoresfrom course ,Teacherwhere Course.courseId=Scores.courseId and Course.teacherId= Teacher.teacherId and teacherName='叶平';16、向Scores表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、号课的平均成绩;Insert Scores select stuId,'002',(Select avg(score)from Scores where courseId='002') from Student where stuId not in (Select stuId from Scores where courseId='002');17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分SELECT stuId as 学生ID,(SELECT score FROM Scores WHERE Scores.stuId=t.stuId AND courseId='004') AS 数据库,(SELECT score FROM Scores WHERE Scores.stuId=t.stuId AND courseId='001') AS 企业管理,(SELECT score FROM Scores WHERE Scores.stuId=t.stuId AND courseId='006') AS 英语,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM Scores AS tGROUP BY stuIdORDER BY avg(t.score)18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分SELECT L.courseId As 课程ID,L.score AS 最高分,R.score AS 最低分FROM Scores L ,Scores AS RWHERE L.courseId = R.courseId andL.score = (SELECT MAX(IL.score)FROM Scores AS IL,Student AS IMWHERE L.courseId = IL.courseId and IM.stuId=IL.stuIdGROUP BY IL.courseId)ANDR.score = (SELECT MIN(IR.score)FROM Scores AS IRWHERE R.courseId = IR.courseIdGROUP BY IR.courseId);19、按各科平均成绩从低到高和及格率的百分数从高到低顺序SELECT t.courseId AS 课程号,max(course.courseName)AS 课程名,isnull(AVG(score),0) AS 平均成绩,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数FROM Scores T,Coursewhere t.courseId=course.courseIdGROUP BY t.courseIdORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DEScores20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)SELECT SUM(CASE WHEN courseId ='001' THEN score ELSE 0 END)/SUM(CASE courseId WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分,100 * SUM(CASE WHEN courseId = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN courseId = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数,SUM(CASE WHEN courseId = '002' THEN score ELSE 0 END)/SUM(CASE courseId WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分,100 * SUM(CASE WHEN courseId = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN courseId = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数,SUM(CASE WHEN courseId = '003' THEN score ELSE 0 END)/SUM(CASE courseId WHEN '003' THEN 1 ELSE 0 END) AS UML平均分,100 * SUM(CASE WHEN courseId = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN courseId = '003' THEN 1 ELSE 0 END) AS UML及格百分数,SUM(CASE WHEN courseId = '004' THEN score ELSE 0 END)/SUM(CASE courseId WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分,100 * SUM(CASE WHEN courseId = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN courseId = '004' THEN 1ELSE 0 END) AS 数据库及格百分数FROM Scores21、查询不同老师所教不同课程平均分从高到低显示SELECT max(Z.teacherId) AS 教师ID,MAX(Z.teacherName) AS 教师姓名,C.courseId AS 课程ID,MAX(C.courseName) AS 课程名称,AVG(score) AS 平均成绩FROM Scores AS T,Course AS C ,Teacher AS Zwhere T.courseId=C.courseId and C.teacherId=Z.teacherIdGROUP BY C.courseIdORDER BY AVG(score) DEScores22、查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004)[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩SELECT DISTINCT top 3Scores.stuId As 学生学号,Student.stuName 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,Scores LEFT JOIN Scores AS T1ON Scores.stuId = T1.stuId AND T1.courseId = '001'LEFT JOIN Scores AS T2ON Scores.stuId = T2.stuId AND T2.courseId = '002'LEFT JOIN Scores AS T3ON Scores.stuId = T3.stuId AND T3.courseId = '003'LEFT JOIN Scores AS T4ON Scores.stuId = T4.stuId AND T4.courseId = '004'WHERE student.stuId=Scores.stuId andISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)NOT IN(SELECTDISTINCTTOP 15 WITH TIESISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)FROM ScoresLEFT JOIN Scores AS T1ON Scores.stuId = T1.stuId AND T1.courseId = 'k1'LEFT JOIN Scores AS T2ON Scores.stuId = T2.stuId AND T2.courseId = 'k2'LEFT JOIN Scores AS T3ON Scores.stuId = T3.stuId AND T3.courseId = 'k3'LEFT JOIN Scores AS T4ON Scores.stuId = T4.stuId AND T4.courseId = 'k4'ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DEScores);23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[<60]SELECT Scores.courseId as 课程ID, courseName 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 Scores,Coursewhere Scores.courseId=Course.courseIdGROUP BY Scores.courseId,courseName;24、查询学生平均成绩及其名次SELECT 1+(SELECT COUNT( distinct 平均成绩)FROM (SELECT stuId,AVG(score) AS 平均成绩FROM ScoresGROUP BY stuId) AS T1WHERE 平均成绩 > T2.平均成绩) as 名次,stuId as 学生学号,平均成绩FROM (SELECT stuId,AVG(score) 平均成绩FROM ScoresGROUP BY stuId) AS T2ORDER BY 平均成绩 deScores;25、查询各科成绩前三名的记录:(不考虑成绩并列情况)SELECT t1.stuId as 学生ID,t1.courseId as 课程ID,score as 分数FROM Scores t1WHERE score IN (SELECT TOP 3 scoreFROM ScoresWHERE t1.courseId= courseIdORDER BY score DEScores)ORDER BY t1.courseId;26、查询每门课程被选修的学生数select courseId,count(stuId) from Scores group by courseId;27、查询出只选修了一门课程的全部学生的学号和姓名select Scores.stuId,Student.stuName,count(courseId) AS 选课数from Scores ,Studentwhere Scores.stuId=Student.stuId group by Scores.stuId ,Student.stuName having count(courseId)=1;28、查询男生、女生人数Select count(stuSex) as 男生人数from Student group by stuSex having stuSex='男';Select count(stuSex) as 女生人数from Student group by stuSex having stuSex='女';29、查询姓“张”的学生名单SELECT stuName FROM Student WHERE stuName like '张%';30、查询同名同性学生名单,并统计同名人数select stuName,count(*) from Student group by stuName having count(*)>1;;31、1981年出生的学生名单(注:Student表中stuAge列的类型是datetime)select stuName, CONVERT(char (11),DATEPART(year,stuAge)) as agefrom studentwhere CONVERT(11),DATEPART(year,stuAge))='1981';32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列Select courseId,Avg(score) from Scores group by courseId order by Avg(score),courseId DEScores ;33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩select stuName,Scores.stuId ,avg(score)from Student,Scoreswhere Student.stuId=Scores.stuId group by Scores.stuId,stuName having avg(score)>85;34、查询课程名称为“数据库”,且分数低于60的学生姓名和分数Select stuName,isnull(score,0)from Student,Scores,Coursewhere Scores.stuId=Student.stuId and Scores.courseId=Course.courseId and Course.courseName='数据库'and score<60;35、查询所有学生的选课情况;SELECT Scores.stuId,Scores.courseId,stuName,courseNameFROM Scores,Student,Coursewhere Scores.stuId=Student.stuId and Scores.courseId=Course.courseId ;36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;SELECT distinct student.stuId,student.stuName,Scores.courseId,Scores.score FROM student,ScoresWHERE Scores.score>=70 AND Scores.stuId=student.stuId;37、查询不及格的课程,并按课程号从大到小排列select courseId from Scores where Scoresor e<60 order by courseId ;38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;select Scores.stuId,Student.stuName from Scores,Student where Scores.stuId=Student.stuId and score>80 and courseId='003';39、求选了课程的学生人数select count(*) from Scores;40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩select Student.stuName,scorefrom Student,Scores,Course C,Teacherwhere Student.stuId=Scores.stuId andScores.courseId=C.courseId and C.teacherId=Teacher.teacherId and Teacher.teacherName='叶平' and Scores.score=(select max(score)from Scores where courseId=C.courseId );41、查询各个课程及相应的选修人数select count(*) from Scores group by courseId;42、查询不同课程成绩相同的学生的学号、课程号、学生成绩select distinct A.stuId,B.score from Scores A ,Scores B whereA.score=B.score and A.courseId <>B.courseId ;43、查询每门功成绩最好的前两名SELECT t1.stuId as 学生ID,t1.courseId as 课程ID,score as 分数FROM Scores t1WHERE score IN (SELECT TOP 2 scoreFROM ScoresWHERE t1.courseId= courseIdORDER BY score DEScores)ORDER BY t1.courseId;44、统计每门课程的学生选修人数(超过10人的课程才统计)。

数据仓库面试题

数据仓库面试题

数据仓库及BI工程师面试题集锦前言1、介绍一下项目经验、项目中的角色。

一、数据库1、Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作用?i.视图与表的区别1. 1、视图是已经编译好的sql语句。

而表不是2. 视图没有实际的物理记录。

而表有。

3. 表是内容,视图是窗口4. 表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改ii. 物化视图与视图区别1.物化视图和视图差别非常大,不是几句能说清物化视图是自动刷新或者手动刷新的,视图不用刷新物化视图也可以直接update,但是不影响base 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只是两个查询集的合并操作。

数据库面试题目及答案

数据库面试题目及答案

数据库面试题目及答案数据库是计算机科学的重要组成部分,对于软件开发人员和数据分析师来说,掌握数据库知识是非常重要的。

在数据库领域的面试中,面试官通常会提出一系列问题来评估你的数据库知识和技能。

本文将介绍一些常见的数据库面试题目,并提供相应的答案,帮助你在面试中更好地表现自己。

一、数据库基础知识1. 什么是数据库?答:数据库是一个组织和存储数据的电子系统,它可以通过各种方式对数据进行存储、操作和访问。

常见的数据库有关系型数据库(如MySQL、Oracle)和非关系型数据库(如MongoDB、Redis)。

2. 什么是SQL?答:SQL(Structured Query Language)是用于管理关系型数据库的标准语言。

它可以用于创建、修改和删除数据库中的表、视图、索引等,以及对数据进行插入、更新和查询操作。

3. 什么是主键和外键?答:主键是一种用于唯一标识表中记录的列,它的值在表中是唯一且不重复的。

外键是表中的一列,它建立了表与表之间的关联关系,通过外键可以实现表之间的数据一致性和完整性。

二、数据库设计和管理4. 什么是数据库范式?答:数据库范式是一种用于规范化数据库结构的理论模型。

它将数据库的结构划分为一系列规范化的关系表,以减少数据冗余和提高数据的一致性和完整性。

常见的数据库范式有第一范式(1NF)、第二范式(2NF)和第三范式(3NF)等。

5. 什么是索引?答:索引是一种提高数据库查询效率的数据结构。

它通过创建一个指向数据库表中数据位置的引用,可以加快数据的检索速度。

常见的索引类型有B树索引、哈希索引和全文索引等。

6. 如何优化数据库查询性能?答:要优化数据库查询性能,可以从以下几个方面入手:- 添加合适的索引,以加快查询的速度。

- 优化SQL语句,避免使用过多的JOIN操作和子查询。

- 使用合理的数据库和表结构设计,减少数据冗余。

- 避免查询大量数据,可以使用分页查询或者限制返回结果的数量。

数据库面试题目及答案

数据库面试题目及答案

数据库面试题目及答案数据库面试是评估一个候选人在数据库领域的技术能力和知识水平的重要环节。

以下是一些常见的数据库面试题目以及它们的答案,希望能对你有所帮助。

1. 什么是数据库?数据库是一个组织和存储数据的集合,它可以被访问、管理和更新。

数据库可以用来存储和检索数据以支持应用程序的运行。

2. 什么是关系型数据库?关系型数据库是一种使用表格和行的结构以及预定义的模式来存储和组织数据的数据库。

关系型数据库使用结构化查询语言(SQL)来管理和检索数据。

3. 什么是非关系型数据库?非关系型数据库是一种不使用表格和行的结构来存储和组织数据的数据库。

非关系型数据库使用不同的数据模型,如键值对、文档数据库、图形数据库等。

4. 什么是SQL?SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。

通过SQL,可以对数据库中的表进行查询、插入、更新和删除操作。

5. 什么是事务?事务是一个数据库操作单位,它由一系列的SQL语句组成。

事务要么全部执行成功,要么全部回滚,确保数据库的一致性和完整性。

6. 什么是索引?索引是一种数据结构,用于提高查询性能。

它可以在数据库中快速定位和访问数据。

常见的索引类型包括B树索引、哈希索引和全文索引。

7. 什么是主键?主键是一个唯一标识数据库表中每一行记录的列。

每个表只能有一个主键,它可以保证表中的每一行都具有唯一标识。

8. 什么是外键?外键用于建立不同数据库表之间的关系。

它定义在一个表中的列,该列的值对应另一个表中的主键值。

9. 什么是视图?视图是一个虚拟表,它是基于数据库中一个或多个表的查询结果。

通过视图,可以简化复杂的查询操作并提供更高的数据安全性。

10. 什么是连接?连接是指从多个表中检索相关数据的过程。

连接通过共享一个公共列来关联两个或多个表,并将它们的数据合并为一个结果集。

11. 什么是范式?范式是一组规范化的数据库设计原则,用于减少数据冗余、提高数据一致性和完整性。

数据库面试题

数据库面试题

数据库面试题数据库面试题是求职者在数据库岗位面试中经常遇到的一类问题。

这些问题旨在考察求职者对数据库相关概念、技术和原理的理解程度,以及他们在实际工作中的应用能力。

下面将介绍一些常见的数据库面试题,帮助读者更好地准备数据库岗位面试。

1. 什么是数据库索引?它的作用是什么?数据库索引是一种数据结构,用于提高数据的检索速度。

它可以将数据库表中的某列或多列按照一定规则进行排序并保存,从而使得查询数据时能够更快地找到符合条件的记录。

索引的作用是加快查询速度,降低数据库系统的负载。

2. 数据库中的事务是什么?它有哪些特性?事务是数据库操作的最小执行单位,它由一个或多个数据库操作组成。

事务具有以下四个特性,通常被称为ACID特性:- 原子性(Atomicity):事务中的操作要么全部成功执行,要么全部失败回滚,没有中间状态。

- 一致性(Consistency):事务前后数据库的状态保持一致,即事务执行前后,数据库从一个一致性状态转换到另一个一致性状态。

- 隔离性(Isolation):多个并发事务的执行互不干扰,每个事务都感觉不到其他事务的存在。

- 持久性(Durability):一旦事务提交成功,其对数据库的改变将永久保存,即使发生系统故障也不会丢失。

3. 请解释什么是数据库范式?数据库设计时为什么要遵循范式规范?数据库范式是一组规范,用于指导数据库设计的过程。

它的目标是提高数据库的数据组织和管理效率,减少数据冗余和数据依赖性,以及确保数据的一致性。

范式规范有多个级别,从第一范式(1NF)到第五范式(5NF)。

遵循范式规范可以带来以下好处:- 数据结构更清晰简洁:范式规范要求每列只包含一个值,并且每个表只描述一个实体或关系类型,使得数据库结构更加清晰、简洁。

- 数据冗余减少:通过将重复、不必要的数据消除,减少了数据冗余,降低了存储空间和维护成本。

- 数据更新异常减少:范式规范要求将数据分散至多个表中,降低了数据的更新异常(插入、更新和删除)的概率。

数据仓库面试题

数据仓库面试题

数据仓库面试题数据仓库是如今企业中不可或缺的一部分,它用于存储和管理大量的数据,并提供可靠且高效的分析和报告功能。

为了在面试中更好地表现自己的能力,下面将介绍一些常见的数据仓库面试题及其详细解答。

1. 请解释什么是数据仓库?数据仓库是一个用于集成、存储、管理和分析大量结构化和非结构化数据的系统。

它用于支持企业决策和战略规划,通过提供高质量、一致和实时的数据帮助企业更好地理解自身业务。

2. 数据仓库和数据库的区别是什么?数据库是一个用于组织和存储数据的系统,其主要目标是提供高效的数据访问。

数据仓库则更加注重数据的集成和分析,它将来自不同数据源的数据进行整合,并提供决策支持的功能。

3. 数据仓库的架构有哪些主要组件?数据仓库的主要组件包括:数据提取(Extraction)、数据转换(Transformation)、数据加载(Loading)、数据存储(Storage)和数据查询(Querying)。

- 数据提取:从不同的数据源中抽取数据,并进行清洗和转换以确保数据的质量和一致性。

- 数据转换:将提取的数据进行预处理、清洗和转换,以适应数据仓库的结构和标准。

- 数据加载:将转换后的数据加载到数据仓库中,以便后续的分析和报告。

- 数据存储:数据仓库通常使用多维数据库或列式数据库进行数据存储和管理。

- 数据查询:用户可以通过查询语言或报告工具对数据仓库中的数据进行查询和分析。

4. 请解释维度和事实表在数据仓库中的作用。

维度是数据仓库中用于描述业务过程的属性,例如时间、地点、产品等。

维度表包含一个主键和与之关联的属性列。

事实表包含了与业务过程相关的事实数据,例如销售额、数量等,并与维度表通过主键进行关联。

维度表和事实表共同构成了数据仓库中的星型或雪花模式结构。

维度表提供了多维数据的上下文信息,而事实表包含了与业务过程相关的度量数据,通过联结维度表和事实表,可以进行复杂的多维分析和报表生成。

5. 数据仓库中的ETL过程是什么?ETL是“提取、转化和加载(Extract, Transform, Load)”的缩写,是数据仓库中非常重要的一环。

数据库60道高频面试题(含答案)

数据库60道高频面试题(含答案)

数据库60道高频面试题(含答案)1. 数据库的基本概念1.1 请简要介绍数据库是什么?答:数据库是按照数据结构来组织、存储和管理数据的仓库。

它支持数据的存储、检索、更新和删除等操作。

1.2 请列举几种常见的数据库类型。

答:常见的数据库类型包括关系型数据库(如MySQL、Oracle、SQL Server)、非关系型数据库(如MongoDB、Redis、Cassandra)和XML数据库等。

2. SQL语句编写2.1 如何查询某个表中的所有记录?答:使用SELECT语句,如:SELECT FROM table_name;2.2 如何查询某个表中的特定列?答:使用SELECT语句,并指定列名,如:SELECT column1, column2 FROM table_name;2.3 如何插入一条记录到表中?答:使用INSERT INTO语句,如:INSERT INTOtable_name (column1, column2) VALUES (value1, value2);2.4 如何更新表中的记录?答:使用UPDATE语句,如:UPDATE table_name SET column1=value1, column2=value2 WHERE condition;2.5 如何删除表中的记录?答:使用DELETE语句,如:DELETE FROM table_name WHERE condition;2.6 如何查询某个表的记录数?答:使用COUNT函数,如:SELECT COUNT() FROMtable_name;2.7 如何查询某个表的记录数,按某个字段分组?答:使用COUNT函数和GROUP BY语句,如:SELECT column_name, COUNT() FROM table_name GROUP BY column_name;2.8 如何连接两个表?答:使用JOIN语句,如:SELECT table1.column1, table2.column2 FROM table1 JOIN table2 ONtable1.column1=table2.column1;2.9 如何查询某个字段的最大值、最小值、平均值?答:使用MAX、MIN、AVG函数,如:SELECTMAX(column_name), MIN(column_name), AVG(column_name) FROM table_name;3. 数据库设计3.1 请简要介绍数据库范式。

DW-BI_数据库面试题

DW-BI_数据库面试题

DW-BI_数据库面试题DW/BI 数据库面试题一、基础题1.简单描述Table/Extent/Segment/Block之间的关系.2.描述Tablespace和Datafile之间的关系.3.描述日志的作用.4.请列举几种表连接的内部算法(非Inner、left、Right、Join).5.SQL调整最关注的是什么.6.描述对索引的认识(索引的结构、对DML的影响、为什么提高了查询性能).7.绑定变量是什么?绑定变量有什么优缺点?8.比较TRUNCATE和DELETE命令.9.FACT Table上需要建立何种索引?10.什么是SCD?请列举SCD的种类与区别.二、SQL试题1.有一张表T(F1,F2,F3,F4),要根据字段F2排序后取第8-16条记录显示,请写出SQL。

2.指出下面SQL语句的执行顺序:select a.column1 , COUNT(*) AS CountValue, SUM(b.column3) AS SumValue fromTableA a inner join TableB b on a.column1 = b.column1 anda.column2 = 1 whereb.column3 = 10 group by a.column1 having COUNT(*) > 10 order by a.column11. 2.3. 4.5. 6.7. 8.三、DW/BI 试题1.描述ROLAP、MOLAP、HOLAP的区别与优势。

2.描述星型与雪花型的区别与优势。

3.描述一下DW设计架构,及ETL设计方法。

4.描述你所熟悉的数据模型,如一些行业的模型,实际参与的设计及主题。

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

DW/BI 数据库面试题
一、基础题
1.简单描述Table/Extent/Segment/Block之间的关系.
2.描述Tablespace和Datafile之间的关系.
3.描述日志的作用.
4.请列举几种表连接的内部算法(非Inner、left、Right、Join).
5.SQL调整最关注的是什么.
6.描述对索引的认识(索引的结构、对DML的影响、为什么提高了查询性能).
7.绑定变量是什么?绑定变量有什么优缺点?
8.比较TRUNCATE和DELETE命令.
9.FACT Table上需要建立何种索引?
10.什么是SCD?请列举SCD的种类与区别.
二、SQL试题
1.有一张表T(F1,F2,F3,F4),要根据字段F2排序后取第8-16条记录显示,请写
出SQL。

2.指出下面SQL语句的执行顺序:
select a.column1 , COUNT(*) AS CountValue, SUM(b.column3) AS SumValue from
TableA a inner join TableB b on a.column1 = b.column1 and a.column2 = 1 where
b.column3 = 10 group by a.column1 having COUNT(*) > 10 order by a.column1
1. 2.
3. 4.
5. 6.
7. 8.
三、DW/BI 试题
1.描述ROLAP、MOLAP、HOLAP的区别与优势。

2.描述星型与雪花型的区别与优势。

3.描述一下DW设计架构,及ETL设计方法。

4.描述你所熟悉的数据模型,如一些行业的模型,实际参与的设计及主题。

相关文档
最新文档