用CSV快速导入MySQL数据表(csv导入mysql表中)
用CSV快速导入MySQL数据表
在实际的数据采集和处理中,我们常常需要从大量的数据中筛选出有用的信息,并将其导入到数据库中。而CSV(Comma Separated Values)文件格式是一种常用的数据交换格式,在数据库中快速导入CSV文件数据也是十分常见的需求。接下来我们将会介绍如何使用CSV快速导入MySQL数据表。
准备工作:
在开始之前,我们需要做好以下准备工作:
1. 登录到MySQL数据库中,并创建数据表,确保数据表的结构与CSV文件的字段对应。
2. 打开CSV文件,并确认每列数据的划分符号。在这里我们假定划分符为“,”。
3. 准备好CSV文件的路径及文件名。
具体步骤:
1. 我们需要确定我们要导入数据的数据表。在这里我们以“book”表为例,其字段包括“book_id”,“book_name”,“publisher”,“publish_date”,“price”。
CREATE TABLE book (
book_id INT(11) NOT NULL AUTO_INCREMENT,
book_name VARCHAR(100) NOT NULL,
publisher VARCHAR(100) NOT NULL,
publish_date DATE NOT NULL,
price DECIMAL(5, 2) NOT NULL,
PRIMARY KEY (book_id)
);
2. 接着,我们需要导入CSV文件的数据到“book”表中。在命令行中输入如下命令:
LOAD DATA INFILE ‘csv_file_path’ INTO TABLE book
FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\n’
IGNORE 1 ROWS
(book_name, publisher, publish_date, price);
其中,csv_file_path为CSV文件的路径及文件名。
由于MySQL默认情况下不允许从本地文件系统中导入数据,因此我们需要添加LOCAL选项。同时,我们还需要注意使用的划分符号(在这里为逗号“,”)以及每行数据的结束符号(在这里为换行符“\n”)。此外,我们还需忽略CSV文件的第一行(即表头)。我们声明导入的字段列表,并确保与“book”表中的字段顺序及名称对应。
3. 稍等片刻,当程序运行完成后,我们即可在“book”表中看到我们所导入的数据。
代码:
以下是一个Python脚本的示例,可用于在命令行中执行CSV数据导入操作。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import MySQLdb
# MySQL数据库连接信息
MYSQL_HOST = ‘localhost’
MYSQL_USER = ‘username’
MYSQL_PASSWORD = ‘password’
MYSQL_DATABASE = ‘database_name’
# CSV文件信息
CSV_FILE_PATH = ‘/path/to/csv/file.csv’
# 打开数据库连接
db = MySQLdb.connect(host=MYSQL_HOST, user=MYSQL_USER, passwd=MYSQL_PASSWORD, db=MYSQL_DATABASE, charset=’utf8′)
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL语句
sql = “LOAD DATA LOCAL INFILE ‘%s’ INTO TABLE book \
FIELDS TERMINATED BY ‘,’ \
LINES TERMINATED BY ‘\n’ \
IGNORE 1 ROWS \
(book_name, publisher, publish_date, price)” % CSV_FILE_PATH
# 执行命令
cursor.execute(sql)
# 提交到数据库执行
db.commit()
# 关闭数据库连接
db.close()
我们可通过输入如下命令执行该脚本:
python import_csv_to_mysql.py
我们在MySQL数据库中即可看到导入的数据。
结语:
使用CSV快速导入MySQL数据表,无疑是一种非常便捷的方法。注意在导入数据的过程中,需要注意的细节还有很多,如CSV文件中可能存在数据类型不一致、空值、特殊符号等情况,因此我们需要根据实际情况进行相应的处理。