当前位置:首页 » 数据仓库 » 将csv导入mysql数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

将csv导入mysql数据库

发布时间: 2022-10-07 21:16:03

1. 如何把取得的CSV数据,存入到Mysql数据库

CSV
格式导入到MYSQL中。
执行语句:
load
data
infile
'你的CSV文件路径'
into
table
你的表
fields
terminated
by
','
lines
terminated
by
'\n';
实例:
库:pc2phone
表:cms_rate
文件路径:C:/A-Z.csv
一:Xls转化(另存)为
.csv格式(A-Z.csv)。存放到C盘根目录下
二:MySQL
Command
Line
Client执行操作。
1:
mysql>
use
pc2phone;
Database
Changed
2:
mysql>
load
data
infile
'C:/A-Z.csv'
into
table
cms_rate
fields
terminated
by
','
lines
terminated
by
'\n';
如果编码正确,导入成功!
如果出现下边情况,则说明编码格式错误。需要对C:/A-Z.csv文件的编码进行转换。
ERROR
1366
<hy000>:Incorrect
string
value:
'\xB9\xFA\xBC\xCA\xB3\xA4...'
for
column
'rate_type'
at
row
1

2. 怎么往mysql数据库中导入csv数据

ysql自己有个csv引擎,可以通过这个引擎来实现将csv中的数据导入到mysql数据库中,并且速度比通过php或是python写的批处理程序快的多。
具体的实现代码示例:

代码如下:

load data infile '/tmp/file.csv' into table _tablename (set character utf8)
fields terminated by ','
enclosed by '"'
lines terminated by '\r\n';

这段代码中涉及的一些关键字的解释如下:
fields terminated by '':这是指出csv文件中字段终止符,也就是数据之间的分隔符;
enclosed by '':指出封套符;
lines terminated by '':指行终止符
在csv文档(RFC4180)中详细介绍了csv的格式,其中的要点有:
(1)字段之间以“,”(逗号)间隔,数据行之间使用\r\n分隔;
(2)字符串以半角双引号包围,字符串本身的双引号用两个双引号表示。
通过以上的解释,详细对于数据导入代码应该有更好的理解了。
同样的,csv数据能够导入mysql数据库中,mysql中的数据表也能导出csv文件,导出的代码示例:

代码如下:

select * from tablename into outfile '/tmp/data.txt'
fields terminated by ','
optionally enclosed by '"'
lines terminated by '\n';

当将数据库中的数据导出到文件后,要再将数据导入到数据库中,必须遵守导出时的文件中定义的格式。

3. 如何将.csv文件导入MySql数据库中

1、LOAD DATA通过读取本地文件系统上的文件,可以将大量数据添加到数据库中。
mysql> USE db1;
mysql> LOAD DATA INFILE ‘datafile.txt’ INTO TABLE db2.table_name;
2、mysqlimport命令直接从文件读取批量数据。它相当于LOAD DATA语句的一个接口。
mysqlimport根据文件名导入表名,即将文件名第一个圆点前的所有字符作为表名。例如,文件class.txt被装入class表中。
mysqlimport -L -uroot -proot db01 table_name.txt;
3、假如你原来表为T1表,数据导入到了T2表。可以用
insert into T1 select * from T2;

4. 如何把取得的CSV数据,存入到MySQL数据库中

CSV
格式导入到MYSQL中。
执行语句:
load
data
infile
'你的CSV文件路径'
into
table
你的表
fields
terminated
by
','
lines
terminated
by
'\n';
实例:
库:pc2phone
表:cms_rate
文件路径:C:/A-Z.csv
一:Xls转化(另存)为
.csv格式(A-Z.csv)。存放到C盘根目录下
二:MySQL
Command
Line
Client执行操作。
1:
mysql>
use
pc2phone;
Database
Changed
2:
mysql>
load
data
infile
'C:/A-Z.csv'
into
table
cms_rate
fields
terminated
by
','
lines
terminated
by
'\n';
如果编码正确,导入成功!
如果出现下边情况,则说明编码格式错误。需要对C:/A-Z.csv文件的编码进行转换。
ERROR
1366
<hy000>:Incorrect
string
value:
'\xB9\xFA\xBC\xCA\xB3\xA4...'
for
column
'rate_type'
at
row
1

5. 如何把csv文件批量导入到mysql数据库

通过命令行导入(要求列与列之间以 英文逗号 分割,若字段中含有 , 则以 " 包裹)

load data infile 'D:/mysql-5.7.29-winx64/files/ratings_5.csv' into table ratings fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
踩坑一:文件路径用 \ 分割会报错,用 / 可(用 \\ 应该也可)
踩坑二:load data 命令报错
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
在 my.ini 中加入(空字符串代表允许从一切目录导入)

[mysqld]
secure-file-priv=''
然后再 Windows 的服务中重新启动 mysql

踩坑三:csv 文件中第一行是诸如 userId 这样的列名
如果你的 csv 文件不大,直接使用 notepad++ 打开后删除第一行即可

但在我们这里,千万级别的文件 notepad++ 无法打开,这时可以考虑两种方法

1. 将 csv 文件传入 Linux 服务器删去第一行

由于不知道如何在 Win 10 中做这个操作,只能通过 Linux 中转执行

sed -i '1d' ratings.csv
检验是否成功,可以打印出第一行观察

cat ratings.csv | head -n 1
2. 通过工具把大的 csv 分成多个 notepad 能够打开的较小文件,对第一个文件删除第一行并依次导入

工具:splitcsv

亲测 5000000 条数据的 csv 文件可以在 notepad++ 中打开(只能同时打开 3 个)

这个工具还有个小坑:ratings_0.csv 的最后一行和 ratings_1.csv 的第一行是重复的,请手动删除

6. 如何将csv导入mysql数据库

经常需要将mysql数据库中的数据导出到excel表格,或者需要将excel表格数据导入到mysql数据库,我的方法是先将它们都转换成一种中间数据格式csv(execl数据可以直接导出为csv格式,csv格式也可以直接用excel打开)。下面介绍一下操作步骤:

csv导入mysql

load data infile 'C:\\Users\\UserName\\Desktop\\test.csv'
into table `table`
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\n';

mysql导入csv

select * from `table`
load data infile 'C:\\Users\\UserName\\Desktop\\test.csv'
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\n';

如果乱码,可用相关编辑器打开.csv文件,另存为utf-8的csv

7. 怎么把csv文件导入mysql

mysql导入csv文件,用到的工具phpmyadmin,步骤如下:

  1. 登录phpmyadmin(以本地localhost/phpmyadmin为示例),输入数据库账号和密码进行登录。

注意事项:mysql导出sql文件兼容性比较好。

8. 如何将CSV数据导入MySQL

导入操作

存在特殊字符情况的处理

Book1.csv

编号,名称,说明
1,测试数据1,"测试CSV文件中,有逗号"
2,测试数据2,"测试CSV文件中有""双引号"""
3,测试数据3,"测试CSV文件中,有逗号和""双引号"""
4,测试数据4,普通数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

mysql> CREATE TABLE Test_Book1 (
-> id int,
-> name VARCHAR(10),
-> data VARCHAR(100)
-> );
Query OK, 0 rows affected (0.05 sec)


下面的 lines terminated by '\r\n' 是 要求换行符号,为 windows的换行
下面的 ignore 1 lines是 忽略第一行的标题行。
mysql> LOAD DATA INFILE 'f:/Book1.csv'
-> INTO TABLE Test_Book1
-> FIELDS TERMINATED BY ','
-> OPTIONALLY ENCLOSED BY '"'
-> lines terminated by '\r\n'
-> ignore 1 lines
-> (id, name, data);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Deleted: 0 Skipped: 0 Warnings: 0

mysql> select * from test_book1;
+------+-----------+--------------------------------+
| id | name | data |
+------+-----------+--------------------------------+
| 1 | 测试数据1 | 测试CSV文件中,有逗号 |
| 2 | 测试数据2 | 测试CSV文件中有"双引号" |
| 3 | 测试数据3 | 测试CSV文件中,有逗号和"双引号" |
| 4 | 测试数据4 | 普通数据 |
+------+-----------+--------------------------------+
4 rows in set (0.00 sec)