在导入数据的时候遇到了很多小问题,记录一下(写个作业不容易啊啊啊)
首先,excel文件转为csv格式。
然后用记事本打开csv文件,另存为utf-8。
由于我的数据里有中文,所以再用vscode打开,另存为gb2312编码。
至此,准备工作就完成了,接下来我们用workbench的向导直接导入:
右键选择数据库,点击table data import wizard
选择路径->next
因为我之前已经建表了,所以直接选择了导入的目标表(bookDB库的book表),如果你没建表,也可以在这里选择creat new table,再next->finish就可以啦。
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
采用一中的办法有个缺陷,当某列数据中存在空白,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博客