热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

excel的日期导入mysql有误_用MySQL对比Excel数据分析

之前的一篇文章讲述了用Excel进行数据分析的过程,如今我们对比一下在Excel和MySQL中相同过程有着什么样的变化。原始数据就是猴子老师第三关的数据根据猴子老师第

之前的一篇文章讲述了用Excel进行数据分析的过程,如今我们对比一下在Excel和MySQL中相同过程有着什么样的变化。

原始数据就是猴子老师第三关的数据 根据猴子老师第三关的步骤制作 初次尝试有很多不足 欢迎讨论指正。

1.首先将招聘网站的原始数据导入MySQL。因为中文的列名可能会对后面的数据有影响,所以我们将列名改为英文。

ca9fb5530d0ca47d8de8b73e75221a9b.png

因为表格当中没有唯一识别的主键,所以我们单独加上了一列做主键。

901aa0274a8098c9f74afa2f13e04a2b.png

也可以在MySQL中新建表格将相应的列名对应。

导入表格。

0f4b2be82ef0945ecfee8c04536c1d7c.png

Excel选择csv格式。

b5114ca1a052d2f3b18f95f45c8aaf17.png

导入数据,选择编码,这样表格中中文不会出现乱码。

8fe7a5e974742211718bf2daaadbd1f6.png

此时一定要将原来的Excel表格关闭。然后不用改其他的东西,一直选择下一步。

aecc3eaffc5251901093134da2dec521.png

确认主键

bb2bf1125c01af9e0402b745a8ce0827.png

点击下一步,然后点击开始。

da9d3ec0eea7b5e80879460f8fa91577.png

成功之后关闭,即可看见表格已经生成。

6f6eb14d3206aed5c5062866a8f62fd9.png

双击表格可以看见数据都传进MySQL中

994ef984c4b9cc93384ca2fee04fb9da.png

在查询中编辑sql语句即可。

49481bfb9231128fb6195f87a06cae7c.png

按照Excel的步骤进行

ce9d0747d31f5e1f7db236932eb3e30f.png

1.提出问题:

1)在哪些城市找到数据分师工作的机会比较大?

2)数据分师的薪水如何?

3)根据工作经验的不同,薪酬是怎样变化的?

2.清洗数据

0c7f112256df1af4d13604570b2b7b0d.png

第一步选择子集

使用ALTER TABLE <表名> DROP COLUMN <列名>将不用的子集删除。

26fb16a29607469c0e67a6b6cdea62d0.png

选中红框圈住的语句&#xff0c;点击运行下的运行已选择

03c8ba79b707c88c75f2a5a7f0e54922.png

注意&#xff0c;并列情况下逗号&#xff0c;不可少。

1cb2f3c9c5591866e3f4d544c09c3d18.png

再次运行上面的语句&#xff0c;可以发现下面的列已经删除了其他的部分。

第二步重新命名列名已经不用了&#xff0c;直接进行第三步删除重复值。

我们看一下我们导入的数据的数量

94cc028e00d28558fd39973698175a60.png

使用count函数&#xff0c;计算主键的个数&#xff0c;为6874个

而真正去掉重复项之后&#xff0c;应该是5031个

13de830148aed2cf012f4abe14a30600.png

但是DISTINCT只能在SELECT中将重复值去掉&#xff0c;不能彻底去掉重复值&#xff0c;所以要使用

DELETE FROM <表名>

WHERE<条件>&#xff1b;

来删除行。或者以后在用到计算数据时在列名的前面加DISTINCT 用到就加

436e3e460841117027f202034de1e0cf.png

DELETE FROM &#96;招聘网站数据-原始数据 1&#96;

WHERE

job_ID in

(SELECT job_ID FROM (SELECT job_ID

FROM &#96;招聘网站数据-原始数据 1&#96;

GROUP BY job_ID

HAVING COUNT(job_ID)>1)a)

AND zhujian NOT in

(SELECT zhujian FROM(SELECT MIN(zhujian) AS zhujian

FROM &#96;招聘网站数据-原始数据 1&#96;

GROUP BY job_ID

HAVING COUNT(job_ID)>1)b);

删除重复值保留一个值的方法是删除job_ID为重复ID&#xff0c;但是主键不是最小值的行。

注意&#xff1a;DELETE FROM &#96;招聘网站数据-原始数据 1&#96;

WHERE

job_ID in

(SELECT job_ID

FROM &#96;招聘网站数据-原始数据 1&#96;

GROUP BY job_ID

HAVING COUNT(job_ID)>1)

AND zhujian NOT in

(SELECT MIN(zhujian) AS zhujian

FROM &#96;招聘网站数据-原始数据 1&#96;

GROUP BY job_ID

HAVING COUNT(job_ID)>1);

会报错 [Err] 1093 - You can&#39;t specify target table 表格名称 for update in FROM clause

原因是&#xff1a;更新数据时使用了查询&#xff0c;而查询的数据又做了更新的条件&#xff0c;mysql不支持这种方式。oracel和msserver都支持这种方式。 怎么规避这个问题&#xff1f; 再加一层封装。

且注意注意select min(zhujian) 后面要有as zhujian

第四步&#xff0c;缺失值处理

92981be5671cd3435192fc3c708413cb.png

可知city列有缺失值

910d1e619f552e7b413f5b3df2288165.png

可知3,5行有缺失值

使用update<表名>

set<列名>&#61;<表达式>

where<条件>;

593b247b2d15d7ef095fa21c07d1c45f.png

第五步&#xff0c;一致化处理

将薪水变成最高工资&#xff0c;最低工资和平均工资

利用locate函数&#xff1a;

LOCATE(substr,str)

返回子串 substr 在字符串 str 中第一次出现的位置。如果子串 substr 在 str 中不存在&#xff0c;返回值为 0&#xff1a;

此函数相当于Excel中的find函数

2eb7a6b761872bb1078f77e007342743.png

substring函数

字符串截取&#xff1a;substring(str from 起始位置 for 终止位置 )

92e1d64e957ed37818c9ff7d6db8a57e.png

LENGTH函数 是计算字符串的长度&#xff0c;等同于Excel中的LEN函数

058803e199141a7c954a0a11271987b3.png
bfbc2ea033204ac076a7d37d9d1790da.png

但是 得到的是select的值 无法长久的保存 想要长久的保存要更新列&#xff0c;然后update数据

更新列采用 alter table<表名> add column<列的定义>

c23e710a9312ba3901b0315e4bc0e5ff.png

update 来更新数据

update<表名>

set<列名>&#61;<表达式>&#xff1b;

eb4b81d69d2b3676e18fb124d3d82de3.png

平均薪水

7c033c5226ca474f0e6d99281a85f307.png

已上这个的平均薪水还是15 可能是将后面的当成字符串了

但是在update时会报错

30df2e1439d0d6b327baab3929fb478a.png
a06d28c4475efb92bf56ed339ab3cc61.png
a206a697703cd91855198dd5dfef0c68.png

再次更新列 然后update数据

3dad7f6183e5a7bb292ea9d5f1b3c8ce.png

数据透视表&#xff1a;根据自己的问题绘制相应的要展示的结果

b9a54ab61de9e141f6889c23f8486d0b.png

但是不知道为什么不限 和应届毕业生不正确 等以后明白了再来更新

发现之前新建的值都是字符型 这里改成integer型

b941ec3a2b22fb6322b258b82ae24643.png
060769b2514abaa81c82ff8a3e1b1775.png

使用 use information_schema;

select * from columns where column_name&#61;&#39;字段名&#39; ;

来查看列的定义&#xff08;注意是两个&#xff1b;&#xff09;

af825615fcf724456fccd0d1475d8f38.png

vlookup

e24fc51ea1bc7525f3f8d59e0c46dd5e.png

至此 基本的Excel功能在MySQL中体现了



推荐阅读
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • EPPlus绘制刻度线的方法及示例代码
    本文介绍了使用EPPlus绘制刻度线的方法,并提供了示例代码。通过ExcelPackage类和List对象,可以实现在Excel中绘制刻度线的功能。具体的方法和示例代码在文章中进行了详细的介绍和演示。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
author-avatar
营营420_769
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有