You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用简单方法将CSV文件导入MySQL数据库?

MySQL 快速导入CSV文件的简单方法

图形化的Table Data Import Wizard会附加大量UI渲染、格式校验逻辑,大文件导入效率极低,推荐使用以下两种更简单高效的导入方案:

前置修正:建表语句

你之前编写的建表语句存在语法错误(缺少表结构外层括号、最后一列末尾多余逗号),修正后如下:

create table bikes (
    ride_id varchar(10),
    rideable_type varchar(30),
    started_at date,
    ended_at date,
    start_station_name varchar(50),
    start_station_id varchar(10),
    end_station_name varchar(50)
);

方法1:LOAD DATA 原生SQL导入(速度最快)

这是MySQL自带的批量导入能力,导入效率是图形化向导的10倍以上,操作如下:

  • 提前确认CSV的字段顺序和表字段顺序一一对应,日期格式为YYYY-MM-DD和表字段类型匹配
  • 执行导入语句:
-- 开启本地文件读取权限(如果执行报错的话先运行这行)
set global local_infile = 1;

LOAD DATA LOCAL INFILE '替换为你的CSV文件绝对路径'
INTO TABLE bikes
FIELDS TERMINATED BY ',' -- CSV字段默认用逗号分隔
ENCLOSED BY '"' -- 字段内容如果用引号包裹就保留这行,没有可以删掉
LINES TERMINATED BY '\r\n' -- Windows系统用\r\n,Linux/macOS替换为\n
IGNORE 1 LINES; -- CSV第一行是表头就跳过这行,没有表头就删掉这行

方法2:Python pandas 导入(和你熟悉的Python读CSV逻辑一致)

不需要记忆复杂的SQL参数,全程用Python语法操作,步骤如下:

  • 先安装依赖包:
    pip install pandas sqlalchemy pymysql
  • 执行导入代码:
import pandas as pd
from sqlalchemy import create_engine

# 建立MySQL连接,按你的实际配置替换用户名、密码、数据库名
engine = create_engine('mysql+pymysql://用户名:密码@127.0.0.1:3306/你的数据库名')

# 读取CSV文件,和你平时用Python读CSV的操作完全一致
df = pd.read_csv('替换为你的CSV文件路径')

# 直接导入MySQL,不需要提前手动建表,pandas会自动适配CSV内容创建表结构
df.to_sql(
    name='bikes',
    con=engine,
    if_exists='replace', # 可选参数:replace=覆盖已有表 append=在已有表后追加 fail=表存在就报错
    index=False # 不导入pandas自动生成的索引列
)

注意事项

  • 若CSV内容的字符串长度超过你建表时的varchar长度,建议先调整表字段长度再导入,避免内容被截断
  • 若CSV里的日期格式不是YYYY-MM-DD,可以在pandas读入后先转换格式再导入,或者在LOAD DATA语句中加格式转换逻辑

内容的提问来源于stack exchange,提问作者dgrszombie315

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:18:01