📜  mysql 加载数据 infile csv - SQL (1)

📅  最后修改于: 2023-12-03 15:17:47.637000             🧑  作者: Mango

MySQL 加载数据 INFILE CSV

在 MySQL 中,可以使用 LOAD DATA INFILE 命令从 CSV 文件中加载数据到数据库表中。该命令可以方便地将大量数据批量导入数据库表中,而不需要逐条插入数据。

以下是一个示例的 LOAD DATA INFILE 命令的用法:

LOAD DATA INFILE 'path/to/file.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
说明
  • path/to/file.csv 是你要加载的 CSV 文件的路径。请确保 MySQL 服务器能够访问到该文件。
  • table_name 是要将数据加载到其中的目标表的名称。
  • FIELDS TERMINATED BY ',' 指定了 CSV 文件中字段之间的分隔符,这里使用逗号作为分隔符。
  • ENCLOSED BY '"' 指定了用于包围字段值的字符,这里使用双引号。
  • LINES TERMINATED BY '\n' 指定了行的分隔符,这里使用换行符。
  • IGNORE 1 ROWS 告诉 MySQL 忽略文件中的首行,该行通常是表头。
注意事项
  • 在使用 LOAD DATA INFILE 命令之前,需要确保 MySQL 服务器具有读取指定文件的权限。
  • 导入的表的结构(列名、列类型等)应与 CSV 文件的数据格式保持一致。
示例

假设我们有一个名为 employees 的表,其结构如下:

CREATE TABLE employees (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  age INT
);

我们有一个名为 employees.csv 的 CSV 文件,包含以下数据:

id,name,age
1,John,25
2,Emily,30
3,Michael,35

要将该 CSV 文件的数据导入到 employees 表中,可以使用以下命令:

LOAD DATA INFILE '/path/to/employees.csv'
INTO TABLE employees
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

成功执行该命令后,employees 表将包含以下数据:

| id | name | age | |----|---------|-----| | 1 | John | 25 | | 2 | Emily | 30 | | 3 | Michael | 35 |

这样,你就成功地将 CSV 文件中的数据加载到了 MySQL 数据库表中。

注意:以上示例中的路径和文件名仅为示意,实际使用时,请根据你的文件路径和表结构进行相应修改。