MySQL命令行导入含空值的orderinfo和userinfo字段内容
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL命令行导入含空值的orderinfo和userinfo字段内容,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1804字,纯文字阅读大概需要3分钟。
内容图文
![MySQL命令行导入含空值的orderinfo和userinfo字段内容](/upload/InfoBanner/zyjiaocheng/892/9f21805e4df246b6b5e1495e12bd9ba2.jpg)
导入背景
在网上找到一个七周成为数据分析师的教学课程,在学到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显示。
内容总结
以上是互联网集市为您收集整理的MySQL命令行导入含空值的orderinfo和userinfo字段内容全部内容,希望文章能够帮你解决MySQL命令行导入含空值的orderinfo和userinfo字段内容所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。