跳到主要内容

MySQL 数据导入

在MySQL中,数据导入是将外部数据加载到数据库表中的过程。无论是从文件、命令行工具,还是从其他数据库系统导入数据,MySQL都提供了多种方法来实现这一操作。本文将详细介绍这些方法,并通过实际案例帮助你理解如何在实际场景中应用这些技术。

1. 从文件导入数据

MySQL支持从多种文件格式导入数据,最常见的是CSV文件。以下是使用LOAD DATA INFILE语句从CSV文件导入数据的步骤。

1.1 准备CSV文件

假设我们有一个名为employees.csv的文件,内容如下:

plaintext
id,name,department,salary
1,John Doe,Engineering,75000
2,Jane Smith,Marketing,65000
3,Alice Johnson,Sales,70000

1.2 创建目标表

在导入数据之前,我们需要在MySQL中创建一个与CSV文件结构匹配的表。

sql
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
department VARCHAR(50),
salary DECIMAL(10, 2)
);

1.3 使用LOAD DATA INFILE导入数据

sql
LOAD DATA INFILE '/path/to/employees.csv'
INTO TABLE employees
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
备注
  • FIELDS TERMINATED BY ',' 指定字段分隔符为逗号。
  • ENCLOSED BY '"' 指定字段值被双引号包围。
  • LINES TERMINATED BY '\n' 指定行分隔符为换行符。
  • IGNORE 1 ROWS 忽略CSV文件的第一行(通常是标题行)。

1.4 验证导入结果

sql
SELECT * FROM employees;

输出结果:

plaintext
+----+----------------+-------------+--------+
| id | name | department | salary |
+----+----------------+-------------+--------+
| 1 | John Doe | Engineering | 75000 |
| 2 | Jane Smith | Marketing | 65000 |
| 3 | Alice Johnson | Sales | 70000 |
+----+----------------+-------------+--------+

2. 从命令行导入数据

MySQL提供了命令行工具mysqlimport,可以方便地从文件导入数据。

2.1 使用mysqlimport导入CSV文件

bash
mysqlimport --local --fields-terminated-by=, --lines-terminated-by=\n --ignore-lines=1 -u username -p database_name /path/to/employees.csv
提示
  • --local 指定从本地文件系统导入。
  • --fields-terminated-by=, 指定字段分隔符为逗号。
  • --lines-terminated-by=\n 指定行分隔符为换行符。
  • --ignore-lines=1 忽略CSV文件的第一行。

3. 从其他数据库导入数据

如果你需要从其他数据库系统(如PostgreSQL、SQL Server等)导入数据,可以使用mysqldumpmysql命令的组合。

3.1 导出数据

首先,从源数据库导出数据到SQL文件。

bash
mysqldump -u source_user -p source_database > data_dump.sql

3.2 导入数据

然后,将导出的SQL文件导入到MySQL数据库中。

bash
mysql -u target_user -p target_database < data_dump.sql

4. 实际案例

假设你正在开发一个员工管理系统,需要从HR部门提供的CSV文件中导入员工数据。通过使用LOAD DATA INFILE语句,你可以轻松地将这些数据导入到MySQL数据库中,并在系统中进行进一步的处理和分析。

5. 总结

MySQL提供了多种数据导入方法,包括从文件、命令行工具和其他数据库系统导入数据。通过掌握这些方法,你可以高效地将外部数据加载到MySQL数据库中,为后续的数据处理和分析打下坚实的基础。

6. 附加资源与练习

  • 练习1:尝试从不同的文件格式(如TSV、JSON)导入数据到MySQL中。
  • 练习2:使用mysqlimport工具从多个CSV文件导入数据到不同的表中。
  • 附加资源:阅读MySQL官方文档中关于数据导入的更多内容。

通过不断练习和探索,你将更加熟练地掌握MySQL数据导入的技巧,为你的数据库管理工作提供强大的支持。