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

如何使用R将多个CSV文件导入至SQL的同一张表中?

使用R批量导入CSV到SQL并合并为单表

步骤1:安装并加载必要的R包

需要用到文件读取、数据合并和数据库交互的工具包:

# 首次运行需安装包
install.packages(c("readr", "dplyr", "DBI", "RSQLite")) # 以SQLite为例,其他数据库替换对应驱动,如RMySQL/RPostgres

# 加载包
library(readr)
library(dplyr)
library(DBI)

步骤2:批量读取所有CSV文件

假设所有CSV文件存放在同一文件夹(示例路径为./city_data/),批量读取并合并数据:

# 获取目标文件夹下所有CSV文件的完整路径
csv_files <- list.files(path = "./city_data/", pattern = "\\.csv$", full.names = TRUE)

# 批量读取文件并合并为单个数据框(你的CSV是空格分隔,用read_table;逗号分隔则换read_csv)
combined_data <- csv_files %>%
  purrr::map_dfr(~read_table(.x))

# 可选:查看合并后的数据结构
str(combined_data)

步骤3:连接到SQL数据库

根据你使用的数据库类型修改连接参数:

  • SQLite本地数据库示例:
# 连接到SQLite,不存在则自动创建数据库文件
con <- dbConnect(RSQLite::SQLite(), dbname = "city_database.db")
  • MySQL数据库示例:
con <- dbConnect(RMySQL::MySQL(),
                 dbname = "你的数据库名",
                 host = "localhost",
                 user = "你的用户名",
                 password = "你的密码")

步骤4:将合并数据写入SQL表

用dbWriteTable完成写入,可选择覆盖已有表或追加数据:

# 将数据写入名为city_population的SQL表,overwrite=TRUE会覆盖已有表,append=TRUE则追加数据
dbWriteTable(con, name = "city_population", value = combined_data, overwrite = TRUE)

# 可选:验证数据是否写入成功
dbGetQuery(con, "SELECT * FROM city_population LIMIT 5")

# 关闭数据库连接
dbDisconnect(con)

注意事项

  • 若CSV是其他分隔符,用read_delim(.x, delim = "你的分隔符")替代read_table。
  • 不同数据库需安装对应驱动包:PostgreSQL用RPostgres,SQL Server用odbc。
  • 若文件量极大,可循环读取单个文件后直接追加到SQL表,避免内存溢出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:10:06