ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL命令行导入含空值的orderinfo和userinfo字段内容

2019-09-03 18:02:39  阅读:421  来源: 互联网

标签:utf orderinfo sex 导入 userinfo birth MySQL csv


导入背景

在网上找到一个七周成为数据分析师的教学课程,在学到MySQL时,要导入两个很大的表:order_info_utf.csv和user_info_utf.csv,这两个表数据比较多,有几十万条数据,所以直接导入的话很费时间,而且容易报错,所以需要用到命令行来导入。
我基本上算是SQL小白,在用命令行导入这两个表时花了我几个小时,参考了@wjl123的帖子MYSQL LOAD DATA导入数据时对于“空值”处理异常,终于搞定了,感谢大佬。

第一步:创建表及字段内容

打开MySQL Workbench,在schema-data下新建表-userinfo、orderinfo,其他信息看图:
在这里插入图片描述
在这里插入图片描述

第二步:找到MySQL的上传路径并把文件复制到文件夹里

  • 打开MySQL 8.0 Command Line Client。(不一定是8.0,看自己下载的版本)
  • 输入服务器密码。这个密码是在安装MySQL时创建的。
  • mysql>show variables like ‘%secure%’; 在这里插入图片描述
  • 找到C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\文件夹并把order_info_utf.csv和user_info_utf.csv复制过去。

第三步:写导入命令

->load data infile 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/userinfo_utf.csv' into table data.userinfo 
->fields terminated by ','
->OPTIONALLY ENCLOSED BY ''
->lines terminated by '\r\n'
->(userId,@sex,@birth)
->set sex=if(@sex="",NULL,@sex),birth=if(@birth="",NULL,@birth);
 ->load data infile 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/orderinfo_utf.csv' into table data.orderinfo
 -> fields terminated by ','
 -> OPTIONALLY ENCLOSED BY ''
 -> lines terminated by '\r\n'
 -> (orderId,userId,isPaid,price,@paidTime)
 -> set paidTime=if(@paidTime="",NULL,@paidTime);

导入结果:
在这里插入图片描述
备注:
1.load data infile而不是load data local infile,原因应该是因为我把文件放在了MySQL的上传路径?
2.直接把文件拖到命令行,可以输出文件的完整路径:C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\userinfo_utf.csv,要记得把“\”改为“/”;
3.重点语句(以表userinfo为例):
->(userId,@sex,@birth)
->set sex=if(@sex="",NULL,@sex),birth=if(@birth="",NULL,@birth)
因为sex和birth会有空值,所以当遇到空值时,用null显示。
在这里插入图片描述
在这里插入图片描述

标签:utf,orderinfo,sex,导入,userinfo,birth,MySQL,csv
来源: https://blog.csdn.net/Carmen0606/article/details/100522658

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有