自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 BI理论基础

数仓:数据仓库(放数据的)数据库:也是放数据的在放数据的这个方面来说,二者没有任何区别,都是放数据的,都是以表的的形式存放数据他们对于用户的用处不同:1、数据库:主要针对业务来用(联机事务处理) 数据的展现需要 前端,后台,数据库管理员 来配合实现2、数仓:主要针对分析(它里面的数据不是说给到用户来展现的),作为公司的决策的依据(联机事务分析)在源系统(业务系统)也能做报表,为什么要建立数仓?因为每个源系统都有自己的功能,可以在这里进行分析或抽其他源系统的数据,但会影响这个系...

2021-11-30 10:02:26 1579

原创 SQL异常相关

-------------异常:在程序运行时出现的错误(前提是:能够运行得起来)DECLAREBEGINEXCEPTION --异常处理的部分 --当程序出现异常的时候,做一些相应的操作(比如:写入日志,打印出错误信息) WHEN 异常名1 THEN --对应异常处理 WHEN 异常名2 THEN --对应异常处理 …… WHEN OTHERS THEN ---这一句就能够搞定所有的 ...

2021-11-30 10:00:56 905

原创 SQL序列相关

序列:用来生成连续的整数数据的对象说明:1、它可以用来生成数据2、生成的数据是 数字型 的值,并且都是整数----语法结构:--简易的创建序列的语法结构: ----用的比较多CREATE SEQUENCE 序列名;--开发规范: 序列名以 SEQ_ 开头--比如: CREATE SEQUENCE SEQ_TEST1;--完整的创建序列的语法结构:CREATE SEQUENCE 序列名[START WITH NUM] ---一...

2021-11-30 10:00:27 1498

原创 同步数据时调用插日志的sp

---------同步数据的时候调查日志的存储过程往日志表中记录信息--比如:全量同步emp表的数据到 EMP_TAG 表,并记录日志信息CREATE OR REPLACE PROCEDURE SP_EMP_TAGIS P_SP_NAME VARCHAR2(40) := 'SP_EMP_TAG'; P_SP_STATUS VARCHAR2(10) := 'RUNNING'; P_S_DATE DATE := SYSDATE; P_F_D...

2021-11-30 09:59:38 288

原创 创建日志表和插日志信息的sp

日志:用来记录错误(用来回溯问题),记录程序运行的情况(对程序进行修改和优化,提高性能)1、首先得创建一个日志表,来记录日志2、创建存储过程,来往日志表中插入日志信息(数据)3、在其他的存储过程(同步数据的存储过程)执行的时候,调用2里面的存储过程来记录具体的信息---需要知道的是:1、首先,每个项目组都有一张记录日志信息的表(日志表),我们基本上不用去创建这张表2、一般插日志信息的存储过程也会有滴3、我们只需要在写我们自己的sp的时候,调用一下这个插日志的存储过程(给一些参数)往这个日志

2021-11-30 09:58:58 1930

原创 SQL包相关

-------------------包:把之前学的plsql的知识封装起来,便于管理分为 包头(包定义) 和 包体----创建包头的语法结构:CREATE [OR REPLACE] PACKAGE 包名IS / AS变量、常量及数据类型定义;游标定义头部;函数、过程的定义和参数列表以及返回类型;END [包名];--比如: CREATE OR REPLACE PACKAGE PKG_TEST1 IS --存储过程 PROCEDURE 过程名[(参数...

2021-11-30 09:58:01 318

原创 三种参数类型

-----------------参数类型--sp或者fun的参数有自己的类型(不是说数据类型)一共3中参数类型:IN / OUT / IN OUT----------------------------IN类型:参数名 [IN] 数据类型1、不写参数类型的时候,默认就是IN类型的参数---------传值的方式1、IN类型的参数,可以传一个具体的值,也可以通过变量传值CREATE OR REPLACE PROCEDURE SP_IN(P_IN IN VARCHAR2)ISBEG

2021-11-30 09:56:54 1256

原创 增量同步相关

----------------------增量同步逻辑:用源表的数据更新目标表,如果目标表中存在该数据则更新,如果不存在则插入实现逻辑:首先,判断目标表中是否存在源表的数据(比较字段) 如果有,则用源表中的数据更新目标表中的对应的该数据 如果没有,则直接将源表中的数据插入到目标表--有两种方式:1、游标 (sp+游标的方式)2、MERGE INTO (不适用于所有的数据库,oracle数据库独有)---------游标的方式--比如:将em...

2021-11-30 09:56:17 133

原创 全量同步相关

-----------------------同步数据:把一个表/结果集中的数据同步到另外的表业务系统表的数据 --------------> ODS层 -----------> DW层 ----------------->DM层1、通过存储过程/工具来实现2、分为 全量同步(全量抽取) 和 增量同步(增量抽取)-----------全量同步:逻辑:用源表的数据直接覆盖目标表实现的逻辑:先将 目标表中的数据清空,然后查询源表的数据,插入到目标表中--比如:全量同步.

2021-11-30 09:55:41 263

原创 自定义函数

-------------------自定义函数:把一些功能/操作封装起来,存在数据库里面,供用户多次使用,不同于sp的是,自定义函数必须要返回一个值(return)FUN一般用来计算用户的指标--创建自定义函数的语法结构:CREATE OR REPLACE FUNCTION 函数名[(参数1 [参数类型] 数据类型[,参数2 参数类型 数据类型......])]RETURN 返回的数据类型IS / AS --声明部分BEGIN --逻辑体 --必须有一个 RETURN 子句;...

2021-11-30 09:54:56 830 1

原创 存储过程相关

--------------------存储过程:把一些经常用到的操作封装起来,存在数据库里面,便于后续的多次调用存储过程一般用来做数据同步--语法结构:CREATE OR REPLACE PROCEDURE 存储过程名[(参数1 [参数类型] 数据类型[,参数2 参数类型 数据类型,....])]IS --/ AS --声明部分BEGIN --逻辑体END;--开发规范:存储过程名以 SP_ 开头--需要注意的是:1、CREATE OR REPLACE(创建或者替换/...

2021-11-30 09:54:15 104

原创 显式游标、隐式游标

---------------------------游标:指向一个结果集的指针--便于理解的来说:指针就可以当做是这个结果集,循环这个指针,就可以拿到该结果集里的数据、分为:隐式游标 和 显式游标-----------隐式游标:SELECT .... INTO ...--需要注意:1、查询的结果只能是1行,不能是0行或者多行2、不需要声明,直接可以使用-----------显示游标:--声明显式游标的语法结构:DECLARE --声明的部分 CURSOR 游标名[(...

2021-11-30 09:53:35 1749

原创 循环控制相关

-------------------------循环控制:重复的执行某一些操作,以得到想要的结果有3种循环的语法1、LOOP循环2、WHILE循环3、FOR循环--------------LOOP循环--语法结构:DECLARE --声明部分BEGIN --逻辑体 LOOP --循环逻辑体 IF 满足退出循环的条件 THEN EXIT; END IF; --退出循环的简写 EXIT WHEN 退出循环的条...

2021-11-30 09:52:17 95

原创 条件判断相关

-----------------条件判断:根据条件是否为真,执行相应的操作1、IF ELSE 判断2、CASE WHEN 判断-----------IF ELSE 条件判断--语法结构:DECLARE --声明体BEGIN --逻辑体 IF 条件1 THEN 逻辑1; [ELSIF 条件2 THEN 逻辑2; ELSIF 条件3 THEN 逻辑3; . . . ELSE 其它逻辑;] END IF;END;--需要...

2021-11-30 09:51:16 134

原创 PLSQL基础

PLSQL:一种编程语言,针对的对象是数据库中的数据(表,表里的数据等等)--在sql中能写的东西,在plsql也都可以写--PL/SQL对大小写不敏感。(现在学习时候得标准:所有的字母都大写)--语法结构:DECLARE --声明/定义的地方(变量、常量、游标) (非必须)BEGIN --写逻辑/写操作的地方 (必须)EXCEPTION --处理异常的地方(非必须)END;--需要注意的是:1、单词不要写错了2、如果要使用变量,那么一定要提前声明3、每写完一句,...

2021-11-30 09:50:25 974

原创 分析函数、聚合函数

分析函数:功能强大。每一组的每一行都可以返回一个统计值1、OVER():开窗,单独查询的时候没有任何意义--比如 SELECT OVER() FROM DUAL; ---会报错2、它一般是结合其它的函数一起使用。比如:结合聚合函数解决一些复杂的报表统计--语法结构:聚合函数OVER()--比如:查询EMP表中的员工的信息以及平均工资SELECT E.*, AVG(E.SAL)OVER() AVG_SALFROM EMP E;--可以解决掉聚合函数不能跟未分组字段...

2021-11-30 09:49:26 1730

原创 分析函数之 LAG() 和 LEAD():求之前或之后的第N行

LAG():求前N的值--语法结构:LAG(目标字段,N[,默认值])OVER([PARTITION BY] 分组字段 ORDER BY 排序字段 ASC/DESC):求目标字段的前N行的该字段的值,跟该字段放同一行上显示--需要注意的是:1、第三个参数(默认值)意思是,当前N个超出了窗口时给的一个值,如果不写,就会给一个NULL值2、ORDER BY 排序字段必须要有,意思就是需要按照某一个字段作为依据3、默认值的类型需要跟目标字段的类型一致4、LAG()是对结果集来求前N的对应的字段的值

2021-11-30 09:48:28 744

原创 行列转换方法

--比如:有一张表S,记录了某公司每个季度的销售额,如下Y Q AMT2015 1 1002015 2 1102015 3 1302015 4 1002016 1 2002016 2 1502016 3 1002016 4 300--现在需要将这个表的内容显示为(列转行)Y Q1 Q2 Q3 Q42015 100 ...

2021-11-30 09:47:25 132

原创 几个判断赋值函数

NVL(参数1,参数2):判断参数1是否为空。如果不为空,则取参数1的值,如果为空,则取参数2的值 参数1是目标字段,参数2是一个具体的值--需要注意:参数2的值的类型要跟参数1的类型一致--比如:SELECT E.*,NVL(E.COMM,0) FROM EMP E;NVL2(参数1,参数2,参数3):判断参数1是否为空。如果不为空,则取参数2的值,如果为空,则取参数3的值 参数1是目标字段,参数2和参数3...

2021-11-30 09:46:06 92

原创 分析函数之排名

------------------分析函数之排名ROW_NUMBER():不会计算相同的数据,排名依次往后RANK() :会计算相同的数据,并且会空出对应的排名DENSE_RANK():会计算相同的数据,但是不会空出排名--语法结构:排名函数()OVER([PARTITION BY 分组字段[,分组字段,....]] ORDER BY 排序字段 ASC/DESC)--ORDER BY 是一定要有的,PARTITION BY 按需使用--比如:分别用三种函数求出工资排名SEL...

2021-11-30 09:36:32 908

原创 SQL--需要COMMIT的情况

DML(INSERT、UPDATE、DELETE)需要COMMIT。DDL(CREATE、ALTER......)不需要COMMIT。

2021-10-18 10:34:39 1740

原创 SQL--向表中插入数据

方法一:INSERT INTO ZZF VALUES('A',1);COMMIT;方法二:INSERT INTO ZZF1(NAME, NUM) SELECT NAME,NUM FROM ZZF;COMMIT;

2021-10-18 10:31:30 2249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除