是的,MySQL 可以通过多种方式读取和处理 CSV 文件。以下是几种主要方法:
这是最高效的方法,直接从文件系统加载 CSV 数据到 MySQL 表:
LOAD DATA INFILE '/path/to/your/file.csv'
INTO TABLE your_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS; -- 如果CSV有标题行,忽略第一行
注意:
- 需要 FILE 权限
- 文件路径是服务器上的路径,不是客户端路径
- 安全考虑:可能需要设置 secure_file_priv
系统变量
这是命令行工具,实际上是 LOAD DATA INFILE 的包装器:
mysqlimport --ignore-lines=1 --fields-terminated-by=, --columns='col1,col2,col3' --local -u username -p database_name /path/to/file.csv
图形化方法: 1. 右键点击目标表 2. 选择 "Table Data Import Wizard" 3. 按照向导步骤选择 CSV 文件并映射列
可以通过 Python、PHP 等语言读取 CSV 然后插入 MySQL:
# Python 示例
import csv
import mysql.connector
conn = mysql.connector.connect(user='user', password='pass', host='localhost', database='db')
cursor = conn.cursor()
with open('file.csv', 'r') as f:
csv_data = csv.reader(f)
next(csv_data) # 跳过标题行
for row in csv_data:
cursor.execute('INSERT INTO table_name VALUES (%s, %s, %s)', row)
conn.commit()
cursor.close()
conn.close()
SET column_name = NULLIF(@variable, '')
处理空值您需要哪种具体的使用场景?我可以提供更详细的指导。