MySQL导入excel教程(踩坑记录)

分布式数据库遇到的小问题

在导入数据的时候遇到了很多小问题,记录一下(写个作业不容易啊啊啊)

一、导入数据

首先,excel文件转为csv格式。

MySQL导入excel教程(踩坑记录)_第1张图片

然后用记事本打开csv文件,另存为utf-8。

由于我的数据里有中文,所以再用vscode打开,另存为gb2312编码。

至此,准备工作就完成了,接下来我们用workbench的向导直接导入:

右键选择数据库,点击table data import wizard

MySQL导入excel教程(踩坑记录)_第2张图片

选择路径->next

MySQL导入excel教程(踩坑记录)_第3张图片

因为我之前已经建表了,所以直接选择了导入的目标表(bookDB库的book表),如果你没建表,也可以在这里选择creat new table,再next->finish就可以啦。

MySQL导入excel教程(踩坑记录)_第4张图片

二、删除表

drop table
drop 是直接删除表信息,速度最快,但是无法找回数据

例如删除 user 表:

drop table user;

truncate (table)
truncate 是删除表数据,不删除表的结构,速度排第二,但不能与where一起使用

例如删除 user 表数据:

truncate table user;

delete from
delete 是删除表中的数据,不删除表结构,速度最慢,但可以与where连用,可以删除指定的行

例如删除user表的所有数据:

delete from user;

删除user表的指定记录:

delete from user where user_id = 1;

参考的原文链接:https://blog.csdn.net/ThinkWon/article/details/106610831

三、导入有空格的csv文件

采用一中的办法有个缺陷,当某列数据中存在空白,workbench不会导入这行数据。

如何才能在导入数据时将空值设置成NULL?以下是概括:

输入:

show global variables like 'local_infile';

如果是ON则可以继续,如果不是则要输入:

set global local_infile=1;

然后退出quit 退出mysql。再次进入时,便会出现 Value=ON

这两步的详细参考为:https://blog.csdn.net/young_kp/article/details/109523153

然后输入:

load data local infile 'D:\\借阅表.csv'into table Borrow fields terminated by ',' OPTIONALLY ENCLOSED BY '"' lines terminated by '\r\n' ignore 1 lines
(readerNo,bookNo,borrowDate,shouldDate,@returnDate)
set
returnDate=NULLif(@returnDate,'')
;

注意:

1、csv的文件路径不能有中文,不然容易报错ERROR 2 (HY000): File ‘XXX’ not found (OS errno 2 - No such file or directory)

2、第二行根据表的结构自己变换变量,存在空数据的列加个@

详细参考:解决Mysql导入csv中空值变为0的问题:导入数据时设定格式-CSDN博客

你可能感兴趣的:(数据库,mysql,excel,数据库)