使用kettle完成学生成绩登记需求

(一) 使用kettle完成学生成绩登记需求

学生成绩表下表所示。(自己创建一个学生表)

  1. 在MySQL中创建一个名为school的数据库,并在school数据库中创建一个名为score的表,使用Kettle将Excel形式的学生成绩表导入MySQL的score表

1)在windows中启动mysql

win+r--->输入cmd---->在小黑窗输入mysql -u root -p---->输入自己设置的密码

 2)创建school数据库和score01表的代码如下

create database school;
use school;
CREATE TABLE score(
	stu_no int,
	name varchar(10),
	score_math int,
	score_english int,
	score_chinese int
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

 3)使用kettle将学生成绩表导入到数据库中。

使用excel输入和表输出控件,配置如下:

对excel输入,首先要绑定输入文件,如图1所示,其次在字段页面中获取头部数据的字段,并对识别错误的数据类型进行修改,如图所示。

 

 

 对于表输出控件,首先需要配置数据库连接,然后选择目标表,最后获取数据库字段,并做好流内字段对表字段的映射。如图所示

配置完成后,就可以点击左上角转换按钮进行转换。

最后在数据库中执行查询语句就能看到插入的结果,如下图所示。

4)、现在发现有些同学的成绩登记错误,经统计得到一个成绩修订表

 为了完成这个任务,我们需要使用到的控件有Excel输入、排序记录、列转行、过滤记录、插入/更新,具体布局如下图所示,其中由列转行控件到过滤记录控件这一节点连接,应选择复制记录。

其中EXCEL输入控件配置类似图前面第一问的。之所以需要排序记录控件,是因为列转行控件要求流中的数据必须有序。

排序记录控件配置如图6所示:

 

 过滤记录控件配置如图所示:

 插入/更新控件配置如图所示,首先需要建立数据库连接,其次选择目标表,接着选择用来查询的字段并选择比较方式,最后配置需要更新的字段,只将需要更新字段的更新状态选择为Y即可。这里只以数学成绩的更新为例,英语与语文同理。

         配置完成后,就可以点击左上角转换按钮进行转换。最后在数据库中执行查询语句就能看到插入的结果,如下图所示。可以看出学生成绩已经按照登记表进行了更新。

 5)、数学老师想要一份只有数学成绩的排名表,请你帮他这个忙。

为了完成这个任务,我们需要使用到的控件有Excel输入、字段选择,排序记录、增加序列及Excel输出。具体布局如下图所示。

表输入控件配置如下图所示,第一步要新建数据库连接,其次点击获取SQL查询语句按钮选择score表。

 

 字段选择控件配置如下图所示,首先要获取选择的字段,导出所有字段,在这里可以进行字段的改名,跟图上面一样。接着点击左上角移除,选择score_english和score_chinese字段,表示放弃这两个字段,如图所示。

 

排序记录控件的配置跟上面类似,选择数学字段按降序进行排序。

增加序列控件的配置如图所示:

 Excel输出控件配置如下图所示,首先选择需要保存的文件,接着将扩展名清空,这是目前该控件存在的一点小问题,会导致有两个后缀。最后选择右上角字段页面,将对应Integer类型的格式改为0,避免排名学号等数据出现小数点。

 

 配置完成后,就可以点击左上角转换按钮进行转换。转换后,可以在相应路径找到文件,结果如下图所示:

 

  • 23
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值