spoon工具的常用基础操作

一些常用转换工具

在这里插入图片描述

1、emp表输入->excel表输出

emp表输入,可以进行预览查看数据有没有过来在这里插入图片描述excel表输出
在这里插入图片描述
在这里插入图片描述
成功执行后,可以到保存的excel位置进行查看。

2、excel输入->表输出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行转换后可以在oracle进行查看是否有成功创建这个表
在这里插入图片描述

3、对部门最高工资进行分组==表输入->排序记录->分组->文本文档输出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、对emp表和dept表进行表连接

  1. 新建两个表输入,一个是对emp表的查询,一个是对dept查询
  2. 分别对两个表进行以deptno进行排序记录
  3. 拖拽一个记录集连接的图标在这里插入图片描述
  4. 运行转换成功后可进行表预览查看在这里插入图片描述

5、查找每个职位排名第一的信息==表输入->排序记录->根据字段值来改变序列->过滤记录->输出

  1. 表输入查找emp表数据
  2. 对job下的工资进行排序,也就是两个字段都要加进去,job在前,sal降序在后,不然数据会出问题。在这里插入图片描述
  3. 根据字段值来改变序列在这里插入图片描述
  4. 过滤记录里面,根据排名结果进行过滤在这里插入图片描述
  5. 运行转换查看结果在这里插入图片描述

6、列转行

  1. 先到oracle对demo和demo1进行建表

CREATE TABLE "DEMO" 
   (  "ID" NUMBER(*,0), 
  "NAME" VARCHAR2(20), 
  "NUMS" NUMBER(*,0)
   ) ;
insert into DEMO (id, name, nums)
values (1, '苹果', 1000);
insert into DEMO (id, name, nums)
values (2, '苹果', 2000);
insert into DEMO (id, name, nums)
values (3, '苹果', 4000);
insert into DEMO (id, name, nums)
values (1, '橘子', 5000);
insert into DEMO (id, name, nums)
values (2, '橘子', 3000);
insert into DEMO (id, name, nums)
values (3, '葡萄', 3500);
insert into DEMO (id, name, nums)
values (4, '芒果', 4200);
insert into DEMO (id, name, nums)
values (4, '芒果', 5500);
commit;

select * from DEMO;

create table demo1 as 
select  id,
      sum(case when name='苹果' then nums end) 苹果,
      sum(case when name='橘子' then nums end) 橘子, 
      sum(case when name='葡萄' then nums end) 葡萄,
      sum(case when name='芒果' then nums end) 芒果 
from  demo
group by id
order  by id;


select * from demo1;
--列转行
select * 
from demo1
unpivot include nulls (nums for name in (苹果,橘子,葡萄,芒果));
  1. 对demo1进行表输入sql查询
  2. 列转行在这里插入图片描述
    在这里插入图片描述
  3. 运行转换
    转换前在这里插入图片描述

转换后在这里插入图片描述

7、行转列(对demo的name字段行转列)

sql语句的行转列

--unpivot方法
select * 
from demo1
unpivot include nulls (nums for name in (苹果,橘子,葡萄,芒果));

--聚合函数+case when
select  id,
        sum(case when name='苹果' then nums end) 苹果,
        sum(case when name='橘子' then nums end) 橘子,
        sum(case when name='葡萄' then nums end) 葡萄,
        sum(case when name='芒果' then nums end) 芒果 
from demo
group by id
order by id;
  1. 对表输入demo1的数据
  2. 因为要用到聚合函数所以需要用到排序记录,对不动的列id进行排序
  3. 行转列在这里插入图片描述
  4. 进行表输出demo2在这里插入图片描述

8、case when 的使用

10部门 员工姓名转小写并向右填充* 至九位 ,job转首字母大写
20部门 员工姓名S替换成* ,M-Z 替换成#
30部门 职位SALESMAN替换成销售

  1. 表输入emp数据

  2. case when在这里插入图片描述

  3. 对不同的条件进行不同字符操作在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 输出到一直excel表,运行结果输出在这里插入图片描述

9、全量更新。会复制源表内容到目标表。根据ETL_DATE字段,目标表的数据=原来旧的的表数据+本次复制的所有源表数据

  1. 准备测试数据

--建立源表-------------------
DROP TABLE EMP_YUAN;
CREATE TABLE EMP_YUAN AS
SELECT T.EMPNO,
       T.JOB,
       T.SAL,
       SYSDATE-2 HIRE_DATE,
       SYSDATE-2 UP_DATE
FROM EMP T WHERE DEPTNO = 10;

--建立目标表-----------------
DROP TABLE EMP_MUBIAO;
CREATE TABLE EMP_MUBIAO AS
SELECT T.EMPNO,
       T.JOB, 
       T.SAL,
       T.HIRE_DATE,
       T.UP_DATE,
       SYSDATE-1 ETL_DATE
FROM EMP_YUAN T;

-------------------------------------------------------
SELECT * FROM EMP_YUAN; ----业务数据发生的表
SELECT * FROM EMP_MUBIAO;----备份或数仓中的历史表
-------------------------------------------------------

INSERT INTO EMP_YUAN
SELECT T.EMPNO,
       T.JOB, 
       T.SAL,
       SYSDATE-1 HIRE_DATE,
       SYSDATE-1 UP_DATE
FROM EMP T WHERE DEPTNO = 20;
-----新入职了五个员工

UPDATE EMP_YUAN SET SAL=2000,UP_DATE = SYSDATE-1 WHERE EMPNO = 7934;
----员工7934的工资发生了变化
COMMIT;
  1. 表输入查找源表emp_yuan数据
  2. 获取系统时间,建立一个新字段ETL_DATE和目标表的字段对应在这里插入图片描述
  3. 表输出,用源表数据覆盖目标表内容在这里插入图片描述在这里插入图片描述

10、增量更新。对比原表,更新和插入新的内容。

  1. 查询源表数据在这里插入图片描述
  2. 获取系统时间etl_date,用来匹配目标表字段在这里插入图片描述
  3. 插入/更新在这里插入图片描述

利用‘作业’定时发送邮件

  1. 新建一个作业
  2. 拖入 start、转换、成功、发送邮件
  3. 转换随便放入一个有效的转换文件
  4. 发送邮件的前提是要当QQ后台,账户->设置->第三发服务->开启服务后保留授权码等会要用在这里插入图片描述
  5. 地址填写在这里插入图片描述
  6. 服务器在这里插入图片描述
  7. 邮件消息在这里插入图片描述
  8. 都填写好后,运行,信息会发送到对应的收件人QQ邮箱里。

利用作业循环打印不同角色下数据库表数据

三个用户 u1 u2 u3 密码 分别也是 u1 u2 u3
这三个用户下 都有一张emp表 分别是 三个部门的用户信息
查询用户下emp表中各有多少条数据 输出列三列 用户名 uname 表名 tname 条数 tcount

  1. 首先先创建不同角色的对应的数据库数据
create user u1 identified by s1;
create user u2 identified by s2;
create user u3 identified by s3;

grant dba to u1;
grant dba to u2;
grant dba to u3;

create table u1.emp as  select * from hu.emp where deptno=10; 
create table u2.emp as  select * from hu.emp where deptno=20; 
create table u3.emp as  select * from hu.emp where deptno=30;

select * from u1.emp;
select * from u2.emp;
select * from u3.emp;

create table tt(username varchar2(20),
                tablename varchar2(20),
                tcount   number);
select * from tt;

如果无法create用户,权限不够的话就进行授权。cmd进入命令框,执行下面三句命令。

sqlplus /nolog
SQL>conn /as sysdba;
SQL>grant all privileges to hu;
  1. 准备一张excel表包含用户名和密码在这里插入图片描述
  2. 一共有五个步骤,下面详细解释。在这里插入图片描述
  • 1_获取记录,新建一个转换,excel表输入然后复制记录到结果,保存转换文件在这里插入图片描述- 2_设置变量,新建一个转换,拖拽从结果获取记录设置变量在这里插入图片描述
    在这里插入图片描述

  • 3_查询结果输出,新建一个数据库连接,变量命名用户名和密码。注意查询语句为select '${u}' username,'emp' tablename,count(1) tcount from emp在这里插入图片描述
    在这里插入图片描述

  • 4_循环获取数据,先创建一个作业,这个作业流程,包括进行设置变量转换,查询结果输出转换,方便后续循环。
    在这里插入图片描述
    在这里插入图片描述

  • 5_执行整个流程,读取记录->循环获取数据输出结果在这里插入图片描述在这里插入图片描述

  • 整个流程写完后,执行作业5_执行整个流程,成功后,可以在数据库查看结果在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/671898.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

十_信号11 - 函数sigsetjmp() 和 siglongjmp()

也就是说,正常情况下,当捕捉到一个信号,并调用该信号的信号处理程序时,被捕捉的信号会被加入到当前进程的信号屏蔽字中,以防止在本次信号处理程序还没有完成的时候,再次触发该信号, 发生重入。 …

罕见!史诗级“大堵船”

新加坡港口的停泊延误时间已延长至7天,积压的集装箱数量达到惊人的450000标准箱,远超新冠疫情暴发时期的数轮高点。业内认为,近期东南亚恶劣的天气情况加剧了该区域港口拥堵。 5月31日,上海航运交易所(下称“航交所”…

针对硅基氮化镓高电子迁移率晶体管(GaN-HEMT)的准物理等效电路模型,包含基板中射频漏电流的温度依赖性

来源:Quasi-Physical Equivalent Circuit Model of RF Leakage Current in Substrate Including Temperature Dependence for GaN-HEMT on Si(TMTT 23年) 摘要 该文章提出了一种针对硅基氮化镓高电子迁移率晶体管(GaN-HEMT&…

【算法】理解堆排序

堆排序,无疑与堆这种数据结构有关。在了解堆排序之前,我们需要先了解堆的建立与维护方法。 堆 堆(二插堆)可以用一种近似的完全二叉树来表示,该二叉树除了叶子结点之外,其余节点均具有两个子女&#xff0c…

HCIP--RIP协议的实验 + RIP笔记

RIP实验: 实验思路: 1.规划IP,配置环回,接口IP 2.在3个路由器上跑通rip; 2.在边界路由器上用rip协议 设置缺省路由; [r3]rip [r3-rip-1]default-route originate 3.在r1、r2的主干接口上设置路由汇总 RIPV2手工汇…

MySQL数据库的约束

MySQL对于数据库存储的数据, 做出一些限制性要求, 就叫做数据库的"约束". 在每一列的 列名, 类型 后面加上"约束". 一. not null (非空) 指定某列不能存储null值. 二. unique (唯一) 保证这一列的每行必须有唯一值. 我们可以看到, 给 table 的 sn 列插…

Ubuntu系统配置DDNS-GO【笔记】

DDNS-GO 是一个基于 Go 语言的动态 DNS (DDNS) 客户端,用于自动更新你的 IP 地址到 DNS 记录上。这对于经常变更 IP 地址的用户(如使用动态 IP 的家庭用户或者小型服务器)非常有用。 此文档实验环境为:ubuntu20.04.6。 在Ubuntu…

基于Django的博客系统之登录增加忘记密码(八)

需求 描述: 用户忘记密码时,提供一种重置密码的方法,以便重新获得账户访问权限。规划: 创建一个包含邮箱输入字段的表单,用于接收用户的重置密码请求。用户输入注册时使用的邮箱地址,系统发送包含重置密码…

量产导入 | 芯片测试介绍可靠性测试

作者:桃芯科技链接:https://picture.iczhiku.com/weixin/message1583129221975.html半导体芯片的defects、Faults 芯片在制造过程中,会出现很多种不同类型的defects,比如栅氧层针孔、扩散工艺造成的各种桥接、各种预期外的高阻态、寄生电容电阻造成的延迟等等,如下面图(1)…

Spring高手之路19——Spring AOP注解指南

文章目录 1. 背景2. 基于AspectJ注解来实现AOP3. XML实现和注解实现AOP的代码对比4. AOP通知讲解5. AOP时序图 1. 背景 在现代软件开发中,面向切面编程(AOP)是一种强大的编程范式,允许开发者跨越应用程序的多个部分定义横切关注点…

数据隐私重塑:Web3时代的隐私保护创新

随着数字化时代的不断深入,数据隐私保护已经成为了人们越来越关注的焦点之一。而在这个数字化时代的新篇章中,Web3技术作为下一代互联网的代表,正在为数据隐私保护带来全新的创新和可能性。本文将深入探讨数据隐私的重要性,Web3时…

解锁数据宝藏:高效查找算法揭秘

代码下载链接:https://gitee.com/flying-wolf-loves-learning/data-structure.git 目录 一、查找的原理 1.1 查找概念 1.2 查找方法 1.3平均查找长度 1.4顺序表的查找 1.5 顺序表的查找算法及分析 1.6 折半查找算法及分析 1.7 分块查找算法及分析 1.8 总结…

很多人讲不明白HTTPS,但是我能

很多人讲不明白HTTPS,但是我能 今天我们用问答的形式,来彻底弄明白HTTPS的过程 下面的问题都是 小明和小丽两个人通信为例 可以把小明想象成服务端,小丽想象成客户端 1. https是做什么用的? 答:数据安全传输用的。…

数学建模 —— 聚类分析(3)

目录 一、聚类分析概述 1.1 常用聚类要素的数据处理 1.1.1 总和标准化 1.1.2 标准差标准化 1.1.3 极大值标准化 1.1.4 极差的标准化 1.2 分类 1.2.1 快速聚类法(K-均值聚类) 1.2.2 系统聚类法(分层聚类法) 二、分类统计…

Ubuntu18.04安装pwntools报错解决方案

报错1:ModuleNotFoundError: No module named ‘setuptools_rust’ 报错信息显示ModuleNotFoundError: No module named setuptools_rust,如下图所示 解决方案:pip install setuptools_rust 报错2:pip版本低 解决方案&#xff…

【数据结构(邓俊辉)学习笔记】图02——搜索

文章目录 0. 概述1. 广度优先搜索1.1 策略1.2 实现1.3 可能情况1.4 实例1.5 多联通1.6 复杂度1.7 最短路径 2. 深度优先搜索2.1 算法2.2 框架2.3 细节2.4 无向边2.5 有向边2.6 多可达域2.7 嵌套引理 3 遍历算法的应用 0. 概述 此前已经介绍过图的基本概念以及它在计算机中的表…

设计模式(十四)行为型模式---访问者模式(visitor)

文章目录 访问者模式简介分派的分类什么是双分派?结构UML图具体实现UML图代码实现 优缺点 访问者模式简介 访问者模式(visitor pattern)是封装一些作用于某种数据结构中的元素的操作,它可以在不改变这个数据结构(实现…

Visual Studio Installer 点击闪退

Visual Studio Installer 点击闪退问题 1. 问题描述2. 错误类型3. 解决方法4. 结果5. 说明6. 参考 1. 问题描述 重装了系统后(系统版本:如下图所示),我从官方网站(https://visualstudio.microsoft.com/ ) 下载了安装程…

Three.js-实现加载图片并旋转

1.实现效果 2. 实现步骤 2.1创建场景 const scene new THREE.Scene(); 2.2添加相机 说明: fov(视场角):视场角决定了相机的视野范围,即相机可以看到的角度范围。较大的视场角表示更广阔的视野,但可能…

如何在镜像中安装固定版本的node和npm

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、使用 Dockerfile 创建自定义镜像二、如何安装固定版本的node及npm总结 前言 最近在做前端工程化相关的内容,需要在一个镜像内安装固定版本的 N…