上一篇
🔥 最新动态(2025年8月)
据R社区统计,DBI
和odbc
包在过去一年下载量暴涨40%,成为企业级数据操作的首选工具!现在连Tidyverse官方文档都推荐用它们替代旧的RODBC
啦~
install.packages(c("DBI", "odbc", "RMySQL")) # 通用数据库接口+MySQL驱动 # 其他常用包可选: # RPostgreSQL | RSQLite | bigrquery (按需安装)
library(DBI) con <- dbConnect( odbc::odbc(), Driver = "MySQL ODBC 8.0 Driver", Server = "你的服务器IP", Database = "数据库名", UID = "用户名", PWD = "密码", Port = 3306 ) # 测试连接是否成功 dbListTables(con) # 能看到表名就说明连上啦!
# 准备测试数据 sales_data <- data.frame( product = c("手机", "笔记本", "耳机"), revenue = c(5000, 8000, 300), date = as.Date(c("2025-08-01", "2025-08-02", "2025-08-03")) ) # 一键创建新表并写入 dbWriteTable(con, "sales_records", sales_data, overwrite = TRUE) # 💡 overwrite=TRUE会覆盖同名表,FALSE则追加
new_data <- data.frame( product = "智能手表", revenue = 2500, date = as.Date("2025-08-04") ) dbWriteTable(con, "sales_records", new_data, append = TRUE) # 🎯 注意字段顺序必须与原表一致!
dbExecute(con, " INSERT INTO sales_records (product, revenue, date) VALUES ('平板电脑', 4500, '2025-08-05') ") # 🚨 重要:字符串要用单引号包裹!
library(dplyr) big_data <- tibble( id = 1:10000, value = rnorm(10000) ) # 分批次写入(避免内存爆炸) dbWriteTable(con, "big_table", big_data[1:5000, ]) dbWriteTable(con, "big_table", big_data[5001:10000, ], append = TRUE)
字段类型匹配
as.Date()
POSIXct
中文乱码问题
连接时添加参数:
dbConnect(..., encoding = "UTF-8")
事务控制
dbBegin(con) # 开始事务 tryCatch({ dbExecute(con, "INSERT...") dbCommit(con) # 成功则提交 }, error = function(e) { dbRollback(con) # 失败则回滚 })
# 模拟订单数据 orders <- data.frame( order_id = sprintf("ORD%05d", 101:110), user_id = sample(1001:1005, 10, replace = TRUE), amount = round(runif(10, 50, 500), 2), status = sample(c("已支付", "待发货", "已完成"), 10, replace = TRUE) ) # 智能写入(自动创建表结构) dbWriteTable(con, "ecommerce_orders", orders, overwrite = FALSE, append = TRUE) # 验证结果 head(dbGetQuery(con, "SELECT * FROM ecommerce_orders"))
dbExistsTable()
检查表是否存在 dbSendStatement(con, "SET autocommit=0")
dbDisconnect(con)
释放连接! ✨ 现在就去试试吧! 用R操作数据库就像在Excel里拖拽表格一样简单~ 遇到问题欢迎在RStudio社区#数据库操作 话题下讨论哦!
(本文方法测试于2025年8月,适用于R 4.3+版本)
本文由 裔昆皓 于2025-08-04发表在【云服务器提供商】,文中图片由(裔昆皓)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/534651.html
发表评论