失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 将Excel文件导入到MySQL数据库中并实现列转行操作

将Excel文件导入到MySQL数据库中并实现列转行操作

时间:2019-01-19 05:16:06

相关推荐

将Excel文件导入到MySQL数据库中并实现列转行操作

在处理数据的时候,因为数据源在Excel文件中,本人Excel文件的处理方法不是太会,加上朋友说在Excel中处理这样的数据很麻烦,我就想着干脆导入到数据库中通过代码解决这个问题,感兴趣的可以找我拿数据源自己试试。自己也是为了避免忘记操作,所以记录下来。

数据格式大致如下(数据量有70w)标题是我自己加上去的。

首先在数据库中新建一张名为diseny的表,表的字段需要和Excel文件中的字段数相同,然后选中该表,鼠标右键出现弹框,选择导入向导,如下图:

一次完成对应步骤即可,下图为其中一个关键步骤(意为数据库表字段和Excel文件数量相对应):

完成上述步骤,就会得到这张表:

因为这样的表是无法满足我要做的数据分析,所以需要做简单处理,按时间分组,address列转行做表字段,表内容为costtime(等待时间),贴上对应的SQL语句:

DROP TABLE IF EXISTS diseny_new;

CREATE TABLE diseny_new

SELECT time ,

max(case WHEN address='古迹探索营' THEN costtime END) as 探索,

max(case WHEN address='七个小矮人矿山车' THEN costtime END) as 矮人,

max(case WHEN address='古迹探索营的绳索挑战道' THEN costtime END) as 挑战道,

max(case WHEN address='与星球大战里的机器人朋友见面' THEN costtime END) as 机器朋友,

max(case WHEN address='创极速光轮-雪佛兰呈献' THEN costtime END) as 雪佛兰,

max(case WHEN address='创界:雪佛兰数字挑战' THEN costtime END) as 数字挑战,

max(case WHEN address='加勒比海盗——沉落宝藏之战' THEN costtime END) as 沉落宝藏,

max(case WHEN address='千年隼号' THEN costtime END) as 千年隼号,

max(case WHEN address='变身钢铁侠' THEN costtime END) as 钢铁侠,

max(case WHEN address='古迹探索营的探索步行道' THEN costtime END) as 步行道,

max(case WHEN address='喷气背包飞行器' THEN costtime END) as 飞行器,

max(case WHEN address='太空幸会史迪奇' THEN costtime END) as 史迪奇,

max(case WHEN address='奇幻童话城堡里的迪士尼公主们' THEN costtime END) as 公主,

max(case WHEN address='奇想花园的米奇俱乐部' THEN costtime END) as 米奇,

max(case WHEN address='小熊维尼历险记' THEN costtime END) as 小熊,

max(case WHEN address='小飞侠天空奇遇' THEN costtime END) as 飞侠,

max(case WHEN address='小飞象' THEN costtime END) as 飞象,

max(case WHEN address='巴斯光年星际营救' THEN costtime END) as 巴斯,

max(case WHEN address='幻想曲旋转木马' THEN costtime END) as 木马,

max(case WHEN address='探秘海妖复仇号' THEN costtime END) as 海妖,

max(case WHEN address='探险家独木舟' THEN costtime END) as 独木舟,

max(case WHEN address='旋转疯蜜罐' THEN costtime END) as 蜜罐,

max(case WHEN address='星球大战远征基地' THEN costtime END) as 基地,

max(case WHEN address='星球大战远征基地的凯洛?伦' THEN costtime END) as 凯洛伦,

max(case WHEN address='星球大战远征基地的达斯?维达' THEN costtime END) as 达斯维达,

max(case WHEN address='晶彩奇航' THEN costtime END) as 晶彩奇航,

max(case WHEN address='欢笑聚友会的丛林迪士尼朋友们' THEN costtime END) as 朋友,

max(case WHEN address='漫威英雄总部' THEN costtime END) as 漫总,

max(case WHEN address='漫威英雄总部的美国队长' THEN costtime END) as 美国队长,

max(case WHEN address='漫威英雄总部的蜘蛛侠' THEN costtime END) as 蜘蛛侠,

max(case WHEN address='漫游童话时光' THEN costtime END) as 童话,

max(case WHEN address='爱丽丝梦游仙境迷宫' THEN costtime END) as 迷宫,

max(case WHEN address='电影放映室' THEN costtime END) as 电影 ,

max(case WHEN address='翱翔?飞越地平线' THEN costtime END) as 地平线,

max(case WHEN address='船奇戏水滩' THEN costtime END) as 戏水滩,

max(case WHEN address='雷鸣山漂流' THEN costtime END) as 雷鸣山

FROM diseny GROUP BY time

因为偷懒的原因表字段就用了中文名称

下图为列转行之后的数据格式(截图并不完整):

PS : 好记性,不如烂笔头,记下自己不会的,慢慢的就会了。

如果觉得《将Excel文件导入到MySQL数据库中并实现列转行操作》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。