CSV数据导入

创建数据库和表

在导入CSV数据之前,需要创建要导入数据的数据库和表。使用MySQL Workbench可以通过GUI的方式创建数据库和表,也可以使用以下命令在命令行中创建:

1
2
3
4
5
6
7
8
CREATE DATABASE testdb;
USE testdb;
CREATE TABLE testtable (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT,
PRIMARY KEY (id)
);

SQL

Copy

以上命令将创建一个名为testdb的数据库,并在其中创建一个名为testtable的表,表中包含id、name和age三列,其中id是主键。

导入CSV数据

在创建了要导入数据的数据库和表之后,可以开始导入CSV数据。有多种方式可以导入CSV数据,以下分别介绍这些方式。

使用LOAD DATA

LOAD DATA是MySQL提供的一个用于导入数据的命令。使用LOAD DATA可以从本地文件系统中导入CSV数据,也可以从远程服务器中的文件中导入CSV数据。

从本地文件系统中导入数据

从本地文件系统中导入CSV数据需要使用LOAD DATA LOCAL命令。以下是一个示例:

1
2
3
4
5
6
LOAD DATA LOCAL INFILE '/path/to/file.csv'
INTO TABLE testtable
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

SQL

Copy

以上命令将从本地文件系统中的/path/to/file.csv导入数据到testtable表中。在执行命令之前,需要确保MySQL用户具有加载本地文件的权限。如果具有FILE权限,可以使用以下命令授予LOAD权限:

1
2
GRANT FILE ON *.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

TXT数据导入

准备工作

首先需要创建一个MySQL数据库和一个数据表,以便将数据导入到其中。创建一个名为“mydatabase”的数据库,其中包含一个名为“mytable”的数据表。可以使用以下SQL创建这些:

1
2
3
4
5
6
7
8
CREATE DATABASE mydatabase;
USE mydatabase;
CREATE TABLE mytable (
ID INT PRIMARY KEY,
Name VARCHAR(255),
Age INT,
Country VARCHAR(255)
);

LOAD DATA INFILE是MySQL提供的一种高效导入文本文件数据的方法。以下是一个基本示例:

1
2
3
4
5
LOAD DATA INFILE 'path/to/your/file.txt'
INTO TABLE mytable
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
IGNORE 1 LINES;
  • file_path:要导入的文件路径。
  • table_name:目标表名。
  • delimiter:字段分隔符,通常为逗号(,)或者制表符(t)。
  • line_terminator:行分隔符,通常为换行符(n)。
  • number:忽略的行数,通常用于跳过文件的头部信息。