数据开发
数据库
侧重数据库基础、原理,SQl性能优化。
一、主键和唯一性约束的区别?
主键唯一,唯一性约束可以多个,相同点都是保证数据不重复。
二、分页查询
1.oracle分页
依靠ROW_NUMBER()伪列,ROW_NUMBER()的作用是产生行号
2.Mysql分页
依靠limit
2.Sqlserver分页
依靠ROW_NUMBER()
三、水平线
high water mark:高水平线,针对单表而言,表中有数据不断地插入时,水平线的值不断增高。它是表的空间曾经扩充到的值 。delete数据对水位线无影响,truncate可重置高水位线。
四、自洽事务
用在记录错误日志同时要回滚主事务。五、数据建模
星形建模:维度表与事实表直连 优点:查询效率高。雪花建模:存在维度表与事实表没有直接相连 优点:减少数据存储量以及联合较小的维表改善查询性能 。
六、视图、表、存储过程的区别
视图:虚拟表,返回结果集。表:真实存在。
存储过程和函数本质上一样,函数返回一个变量的限制,存储过程可以有多个,函数可以在sql中部分调用,存储过程不行。
七、包的定义,语句
定义:数据库对象,相当于一个容器,由**包头、包体**组成。Create or replace package testpackage as
Type test_cursor is ref cursor;
End testpackage
八、Oracle导入导出命令
库导出:exp 管理员账号/密码 full=y file=C:\person.dmp; 库导入:imp 管理员账号/密码 full=y file=C:\person.dmp
用户导出: exp 管理员账号/密码 owner = file=C:\person.dmp
用户导入:imp 管理员账号/密码 file=C:\person.dmp from user=
按表导出:exp 管理员账号/密码 file=C:\person.dmp tables = t_person,t_student
按表导入:imp 管理员账号/密码 file=C:\person.dmp tables = t_person,t_student
九、Sql语句怎么查看用到的索引
Oracle:explain plan for sqlMysql:explain sqll
思考:除了explain还有什么办法?
十、Oracle分区
范围分区、列表分区、散列分区、组合分区十一、缓慢变化维的定义以及解决方式
缓慢变化维:顾名思义就是随着时间发生变化的维度。解决方式:
第一种方式是直接覆盖原值。 第二种方式是添加维度行。 第三种方式是添加属性列。
十二、数据中台的概念
数据中台其实是一个比较大的范围,之前面试问到这个,面试官强调已经有统一的定义,是企业统一输出数据的平台。这点我保持意见,数据中泰是一个相当大的概念,数据从采集,清洗,分析到可视化完整链路,最终形成指标统一输出,这是我理解的数据中太,他并不是一个平台,理所当然面试挂了。总结
平时工作中不仅要注重结果的交付,同时也要多思考沉淀自己,多下功夫了解为什么要这么做,实现原理是什么,凡事都问自己为什么。
贴一段前辈的话:
1.多做些沉淀思考;
2.从模型设计交付出发,理解模型怎么做,外部怎么做,内部怎么做,为什么这样做,多做些思考;
3.了解下阿里怎么做数据仓库的,有本书:大数据之路,可以买来看看