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

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

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

一、导入数据

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

image-20231026155030274

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

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

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

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

image-20231026155752423

选择路径->next

image-20231026155932693

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

image-20231026160054878

二、删除表

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博客

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
要将Excel导入MySQL数据库,可以按照以下步骤进行操作: 1. 将Excel表另存为CSV文件,并确保CSV文件采用逗号分隔的格式。\[2\] 2. 使用文本编辑工具(如Notepad++)打开CSV文件,并将其转换为UTF-8编码格式保存。\[2\] 3. 使用MySQL可视化界面(如Navicat for MySQL)打开对应的数据库表,右键点击表名,选择导入向导。\[2\] 4. 在导入向导中选择导入类型为文本文件,并选择之前保存的CSV文件作为数据源。\[2\] 5. 选择逗号作为字段分隔符,并根据需要进行其他定义,然后点击下一步。\[2\] 6. 检查源表和数据库表的字段对应关系是否正确,然后点击下一步。\[2\] 7. 建立Excel字段与数据库表字段的映射关系,然后点击下一步。\[2\] 8. 点击开始,等待导入过程完成。\[2\] 9. 导入完成后,可以关闭导入向导,并在数据库中查看已导入的数据。\[2\] 另外,如果需要将数据导出为txt文件,可以使用MySQL的OUTFILE语句进行导出,并使用CONVERT函数将中文转换为GBK格式,以避免Excel打开乱码。\[3\] #### 引用[.reference_title] - *1* *2* [Excel表格数据导入MySQL数据库](https://blog.csdn.net/qq_41936224/article/details/121332992)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [mysql数据库excel数据的导入与导出](https://blog.csdn.net/xxt201/article/details/123052673)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值