通过Shell实现MySQL批量导入CSV

在数据处理过程中,将CSV文件导入MySQL数据库是一种常见的操作。本文将介绍如何使用Shell脚本来实现MySQL批量导入CSV文件的功能。

准备工作

首先,我们需要准备好以下工具和文件:

  1. 安装MySQL数据库,确保可以通过命令行访问MySQL。
  2. 准备CSV文件,确保CSV文件中的数据格式与MySQL表中的字段类型一致。

实现步骤

步骤一:创建MySQL表

首先,我们需要创建一个MySQL表,用于存储CSV文件中的数据。假设我们有一个名为employees的表,表结构如下:

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

步骤二:编写Shell脚本

接下来,我们编写一个Shell脚本,用于将CSV文件中的数据导入到MySQL表中。假设我们的CSV文件名为data.csv,脚本内容如下:

#!/bin/bash

MYSQL_USER="root"
MYSQL_PASSWORD="password"
MYSQL_DATABASE="database_name"
MYSQL_TABLE="employees"
CSV_FILE="data.csv"

mysql -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE <<EOF
LOAD DATA LOCAL INFILE '$CSV_FILE'
INTO TABLE $MYSQL_TABLE
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
EOF

步骤三:执行Shell脚本

将上述脚本保存为import.sh文件,并赋予执行权限:

chmod +x import.sh

然后执行脚本,将CSV文件中的数据导入到MySQL表中:

./import.sh

效果演示

下面是一个简单的序列图,展示了Shell脚本与MySQL数据库之间的交互过程:

sequenceDiagram
    participant Shell
    participant MySQL
    Shell->>MySQL: 运行import.sh脚本
    MySQL->>MySQL: 执行LOAD DATA INFILE命令
    MySQL-->>Shell: 导入数据完成

总结

通过上述步骤,我们成功地使用Shell脚本实现了MySQL批量导入CSV文件的功能。在实际应用中,可以根据具体需求进行定制化的脚本编写,提高数据处理的效率和准确性。希望本文对您有所帮助!