数据仓库及BI工程师面试题集锦 前言 1、介绍一下项目经验、项目中的角色。 一、 数据库 1、 Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作用? i. 视图与表的区别 1. 1、视图是已经编译好的 sql 语句。而表不是 2. 视图没有实际的物理记录。而表有。 3. 表是内容,视图是窗口 4. 表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改 ii. 物化视图与视图区别 1. 物化视图和视图差别非常大,不是几句能说清 物化视图是自动刷新或者手动刷新的,视图不用刷新 物化视图也可以直接 u pdate,但是不影响 base table,对视图的 u pdate 反映到 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 低 4、 对游标的理解?游标的分类?使用方法? a) 显式游标:在PL/SQL 程序中CURSOR…IS定义,它可以对查询语句返回的记录进行处理,用时需要定义、打开、使用和关闭,游标属性的前缀是游标名,有%FOUND、%NOTFOUND、%ROWCOUNT、%ISOPEN,可以处理多行数据,在程序中设置循环取出每一行数据 b) 隐式游标:非 PL/SQL 程序中定义,在PL/SQL 中使用 insert/u pdate/delete 语句时,oracle 系统自动分配的游标,不需要打开和关闭,游标属性的前缀是SQL,%ISOPEN总是fal...