当前位置:Gxlcms > 数据库问题 > R语言使用RMySQL连接及读写Mysql数据库 测试通过

R语言使用RMySQL连接及读写Mysql数据库 测试通过

时间:2021-07-01 10:21:17 帮助过:19人阅读

   print?技术分享技术分享
  1. library(RMySQL)  
  2. help(package=”RMySQL”) #查看RMySQL的说明文档,里面有RMySQL所有可用的方法  
  3. #创建数据库连接  
  4. con <- dbConnect(MySQL(),host="host",dbname="test_dw",user="user",password="password")  
  5. #获取连接信息,查看database下所有表,以及删除testname表  
  6. summary(con)  
  7. dbGetInfo(con)  
  8. dbListTables(con)  
  9. dbRemoveTable(con,"test")  

技术分享

[plain] view plain copy    print?技术分享技术分享
  1. #写数据库表  
  2. fruits <-data.frame(id=1:5,name=c("苹果","香蕉","梨子","玉米","西瓜"),price=c(8.8,4.98,7.8,6,2.1),status=c("无","打折","无","售罄","批发"))  
  3. dbListTables(con)  
  4. dbWriteTable(con,"fruits",fruits)  
  5. dbListTables(con)  

技术分享

[plain] view plain copy    print?技术分享技术分享
  1. #读数据库  
  2. dbReadTable(con,"fruits")#中文出现乱码,这是因为字符编码格式不统一的问题  
  3. dbSendQuery(con,‘SET NAMES utf8‘)    #修正,原为:dbSendQuery(con,‘SET NAMES uft8‘)  

dbReadTable(con,"fruits")#没有乱码问题了


技术分享

技术分享

dbSendQuery(con,‘SET NAMES uft8‘)这个设置一老会提示错误,可能会需要多试几次才行,不知道为什么。

 

注意:应为:dbSendQuery(con,‘SET NAMES utf8‘)

 


 

技术分享

[plain] view plain copy    print?技术分享技术分享
  1. #写数据表,覆盖追加  
  2. testA <-data.frame(id=1:6,e=c("a","b","c","d","e","f"),c=c("我","的","世","界","变","得"))  
  3. testB <-data.frame(id=7:13,e=c("g","h","i","j","k","l","m"),c=c("奇","妙","跟","难","以","言","喻"))  
  4. #直接写testA写入test表中  
  5. dbWriteTable(con,"test",testA,row.names=F)  
  6. dbReadTable(con,"test")  
  7. #追加写testB追加在test表后  
  8. dbWriteTable(con,"test",testB,append=T,row.names=F)  
  9. dbReadTable(con,"test")  
  10. #覆盖写testB覆盖test表  
  11. dbWriteTable(con,"test",testB,overwrite=T,row.names=F)  
  12. dbReadTable(con,"test")  

技术分享

[plain] view plain copy    print?技术分享技术分享
  1. #用SQL语句查询dbGetQuery()和dbSendQuery()两种方法  
  2. dbGetQuery(con, "SELECT * FROM fruits limit 3")  
  3.    
  4. res <- dbSendQuery(con, "SELECT *FROM fruits")  
  5. data <- dbFetch(res, n=2) #取前2条数据,n=-1时是获取所有数据  
  6. data  
  7. data <- dbFetch(res, n=-1) #取余下所有数据  
  8. data  
  9. dbClearResult(res)  
  10. dbDisconnect(con) #断开连接  

技术分享

[plain] view plain copy    print?技术分享技术分享
  1. #用SQL语句批量查询  
  2. con <- dbConnect(MySQL(),host="host",dbname="test_dw",user="user",password="password",client.flag= CLIENT_MULTI_STATEMENTS) #client.flag设置这样支持批量查询  
  3. dbSendQuery(con,‘SET NAMES uft-8‘)  
  4. sql <- "SELECT * FROM fruits;SELECT * FROM test"  
  5. res1 <- dbSendQuery(con,sql)  
  6. dbFetch(res1, n = -1)  
  7. if (dbMoreResults(con)) {  
  8.   res2 <- dbNextResult(con)  
  9.   dbFetch(res2, n = -1)  
  10. }  
  11. dbListResults(con)  
  12. dbClearResult(res1)  
  13. dbClearResult(res2)  
  14.    
  15. dbDisconnect(con)  

技术分享
参考:RMySQL数据库编程指南

R语言使用RMySQL连接及读写Mysql数据库 测试通过

标签:inno   tool   www   strong   row   _for   select   app   派生   

人气教程排行