CSV文件导入MySQL

本篇博客主要讲将存有大量数据的CSV文件导入mysql的方法
(在Windows中使用命令行)

第一:CSV文件的准备
文件内容为上海互联网公司的招聘信息
链接:https://pan.baidu.com/s/1Ke6_7RbGzNDEeqXodCnbnQ
提取码:dqem
复制这段内容后打开百度网盘手机App,操作更方便哦
CSV文件通过上面的链接即可下载
文件的具体内容
在这里插入图片描述

第二:数据的导入

(1)打开mysql命令窗口,输入密码

(2)新建数据库
create database 库名 character set utf8;
在这里插入图片描述
(3)使用这个数据库,使用命令
use job

(4)新建一张表
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
字段名 类型(长度) [约束]
);
建立的表内容比较复杂,建议粘贴(经多次手敲出错总结的经验)
在这里插入图片描述

	create table shanghai(
     id int(64),
     jobName varchar(64),
     salary varchar(64),
     jobType2_code varchar(64),
     jobType2_name varchar(64),
     industry_code varchar(64),
     city_code varchar(64),
     city_name varchar(64),
     welfare varchar(64),
     eduLevel varchar(64),
     workingExp varchar(64),
     company_name varchar(64),
     positionURL varchar(64),
     JobDetail varchar(6666),
     createDate varchar(64)
     );

为了防止空间不足,所以设置了相对较大的空间

(5)修改JobDetail 数据项的编码格式使他支持所有中文及中文字符。
因为JobDetail 数据项中有大量文字,这样可以避免某些错误
使用指令:

alter table shanghai change JobDetail JobDetail varchar(6666) character set gbk;

(6)使用下面的命令将IT_shanghai.csv导入mysql

load data infile 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/IT_shanghai.csv' 
into table shanghai character set gbk
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n'
ignore 1 lines;

在这里插入图片描述(7)查看数据库存储的信息
使用命令:select * from shanghai;
在这里插入图片描述
在这里插入图片描述
可能出现的问题及解决方案

ERROR 1406 (22001): Data too long for column ‘JobDetail’ at row 3858
因为我们插入的值太长,操作被终止,需要修改列的长度
alter table 表名 modify 要修改的字段名 类型(长度) [约束]
在这里插入图片描述
ERROR 1366 (HY000): Incorrect string value: ‘\x810\x842 \xB8…’ for column ‘JobDetail’ at row 1
这是因为因为文件的问题,需要根据报错提示修改文件的内容。
本错误信息提示第1行‘JobDetail’字段出现不正确的字符,查找之后发现我在这个字段的数据含有多个比较复杂且反常的字符,可能无法识别,把这些个字符去掉之后这个错误便消失了。
还有一种可能该表和字段的字符集不支持中文或中文符号
解决办法
将表和字段的字符集改为支持中文的字符集如gbk(支持所有中文以及中文符号)
使用命令:alter table shanghai change JobDetail JobDetail varchar(6666) character set gbk;

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
因为文件地址书写格式问题或文件存储地址的问题
如果是文件地址书写格式问题只需把“\”改成“/”
例:C:\ProgramData\MySQL\MySQL Server 8.0\Uploads改为C:/ProgramData/MySQL/MySQL Server 8.0/Uploads
如果是文件存储地址的问题需要将文件移到mysql默认的文件夹中。
具体操作见https://www.cnblogs.com/enjong/p/8538724.html

ERROR 1300 (HY000): Invalid utf8 character string: ‘Web\01F0’
这个是因为导入文件语句中加入编码格式的问题
例:这里将编码格式设为utf8,into table student character set utf8 在这里插入图片描述出现了错误,若改成gbk就没问题,into table student character set gbk
在这里插入图片描述ERROR 1366 (HY000): Incorrect integer value: ‘id’ for column ‘id’ at row 1
本错误信息提示第1行出现不正确的int值,可能原因是数据库“id”字段定义的数据类型是int型,而数据中存储的却不是int型(这里是因为是字符型产生的错误)。这种情况一般是数据类型出现不一致的问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值