面试准备

4.事实表和维度表、星形模型和雪花模型
事实数据表:是数据库的中央表,包含联系维度表的度量值和字段。
维度表:是属性的维度集合,是分析数据的窗口,包含事实表中事实记录的特性。
关系:一个事实数据表都要和一个或多个维度表相关联,用户在利用事实数据表创建多维数据集时,可以使用一个或多个维度表。
星形模型:所有的维度表都能直接跟事实表相关联,存在冗余数据,一般性会能更好。
雪花模型:一个或多个维度表没有直接跟事实表现关联,需要通过其他的维度表才能关联到事实表,除去了冗余数据,因为要跟维度表关联多次,所以效率不一定有星型模型好。

5.三范式
第一范式:表中字段不可拆分,同行同列不能出现两个值。
第二范式:满足第一范式的前提下,非主键列和主键存在完全依赖。
第三范式:满足第二范式的前提下,非主键列和主键直接相关,不能间接相关。

  1. union 和 union all
    union 用于取得两个结果集的并集,会自动去掉结果集中的重复行 , 并且会以第1列的结果进行升序排序。
    union all不会取消重复行,也不会对集数据进行排序,union all效率上比union快。
    要注意的点:
    ①相同数量的列;
    ②列也必须拥有相似的数据类型;
    ③同时,每条 SELECT 语句中的列的顺序必须相同。

7.视图和表
create view 视图名 as select 查询 [with read only constraint]
数据库中的数据都是存储在表中的,而视图只是一个或多个表依照某个条件组合而成的结果集,一般来说你可以用update,insert,delete等sql语句修改表中的数据,而对视图只能进行select操作。但是也存在可更新的视图,对于这类视图的update,insert和delete等操作最终会作用于与其相关的表中数据。因此,表是数据库中数据存储的基础,而视图只是为了满足某种查询要求而建立的一个对象。 表是物理存在的,你可以理解成计算机中的文件! 视图是虚拟的内存表,你可以理解成Windows的快捷方式!
①视图是数据库数据的特定子集。可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据,这种方法可以保护用户和应用程序不受某些数据库修改的影响。
②视图是抽象的,他在使用时,从表里提取出数据,形成虚的表。 不过对他的操作有很多的限制 。
③而且视图是永远不会自己消失的除非你删除它。 视图有时会对提高效率有帮助。临时表几乎是不会对性能有帮助,是资源消耗者。 视图一般随该数据库存放在一起,临时表永远都是在tempdb里的。
④视图适合于多表连接浏览时使用!不适合增、删、改.,存储过程适合于使用较频繁的SQL语句,这样可以提高 执行效率!
视图和表的区别和联系

区别:1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改
5、表是内模式,视图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

视图的种类:①物化视图,物化视图是将数据转换为一个表,实际存储着数据,这样查询数据,就不用关联一大堆表,如果表很大的话,会在临时表空间内做大量的操作。
②非物化视图,普通视图是不存储任何数据的,他只有定义,在查询中是转换为对应的定义SQL去查询。
③关系视图:创建之后可以通过工具或数据字典查看
④内嵌视图:把select出来的表作为一个子查询,不属于任何用户,不是对象。

8.同义词
定义:是数据库对象的一个别名, Oracle可以为表、视图、序列、过程、程序包等,指定一个别名。
有两种类型:
私有同义词:拥有create synonym权限的用户,即可创建四有同义词,创建的私有同义词只能由当前用户所用。
公有同义词:系统管理员可以创建公有同义词,公有同义词可以被所有用户访问。

9.索引
一种按照物理地址排列的数据结构。
索引的类型
①普通索引
②唯一索引 当某一列任意两行值都不相同时
③组合索引 当两个或多个列经常在一起出现在where条件中时,组合索引中的列顺序是任意的,无需相邻,但建议将最频繁访问的列放在列表的最前面。
④位图索引 当列中有非常多的重复值时
⑤全文索引 对文本的内容进行分词,进行搜索
索引的优缺点:
优点:①创建唯一索引,可以保证数据库表中每一列数据的唯一性。
②可以大大加快数据的检索速度,这就是创建索引的最主要原因。
③可以加速表和表之间的连接,实现数据的参考完整性。
④在使用分组和排序子句中进行检索时,同样可以显著减少查询中分组和排序的时间。
缺点:①创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
②索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果建立聚簇索引,那么需要的空间更大。
③当对表中的数据进行增加、删除和修改的时候,索引也需要动态维护,这样就降低了数据的维护速度。
哪些列需要建立索引?
①需要搜索的列
②需要连接的列
③需要根据范围进行搜索的列
④需要排序的列
哪些列不该创建索引?
①很少使用或很少参考的列。
②定义为text、image、bit数据类型的列,因为这些列的数据链要么相当大,要么取值很少。
③对于那些只有很少数值的列,也不应该增加索引。
④当修改的性能远远大于检索性能时不该创建索引。因为修改性能和检索性能是互相矛盾的。
索引失效的情况?
①隐式转换导致索引失效
②对索引列进行运算导致索引失效,所以列运算包括(+ - × / !)
③ Oracle内部函数导致索引失效,这时应该创建基于函数的索引。
④5种导致索引失效的条件
使用<>、not in、not exist、!
使用like“%”百分号在前
单独引用复合索引非第一位置的索引列
字符型字段为数字时,在where条件里不添加引号
当变量采用的是times变量,而表的字段采用date变量时,或者相反情况

10.表分区
类型:范围分析:range
列表分析:list
哈希分区:hash
组合分区:

11.执行计划
关联机制
循环嵌套
哈希连接
排序合并连接
扫描方式
全表扫描
索引扫描

12.plsql 循环的类型
for
while
loop
游标

13.空值的特性
不参与聚合运算,不参与算术运算,排序最大

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值