从csv或者txt文件导入MySQL数据库

自渡
2024-10-21 / 0 评论 / 20 阅读

在日常操作中,经常会遇到把数据导入mysql的问题,比如在办公中常会使用excel来记录员工信息或者财务信息等。而excel数据并不能直接导入mysql,但可以先把它转换为csv文件后导入。
csv文件默认是以英文逗号做为列分隔符,换行符作为行分隔符,它可以通过excel的xls、xlsx文件转换而来,亦可被当成txt文本文件来读取。
本质上它的文件格式如下(示例):

工号,姓名,部门
01,张三,生产部
02,李四,销售部
03,王五,办公室

mysql中的load data命令为该格式的导入提供了方便,在linux中,可以通过这个命令可以直接将数据导入mysql中:
首先将预导入的数据表放在/home/user/staff.csv路径下
后在mysql数据库中创建一张用于记录该信息的表:

mysql> CREATE TABLE `staff` ( `id` VARCHAR(64) NOT NULL , `name` VARCHAR(64) NOT NULL , `dept` TEXT NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;

使用load data命令导入

mysql> load data infile '/home/user/staff.csv' into table staff fields terminated by ',';

这样子的话就可以导入成功
另外,重要的是
如果你使用mysql命令登录的是外部数据库服务器(非本地127.0.0.1),使用load data直接导入会出现以下错误
ERROR 13 (HY000): Can't get stat of '/home/user/staff.csv' (Errcode: 2 - No such file or directory)
这是因为远程主机导入csv文件默认是读取远程主机上的目录,而非客户端主机上的目录,此时加上一个local命令就可以

mysql> load data local infile '/home/user/staff.csv' into table staff fields terminated by ',';
0

评论 (0)

取消