R-RMySQL包介绍学习

连接数据库

dbConnect(MySQL(),host="localhost",dbname,user="",password="", ...)

library(RMySql)
#可能是安装RMySQL的问题,导致直接library(RMySql)提示不存在RMySql包,通过下列方式可以加载成功(又挖一个坑...)
library("RMySQL", lib.loc="/Library/Frameworks/R.framework/Versions/3.3/Resources/library")
# Quark
con <- dbConnect(MySQL(),host="localhost",dbname="Quark",user="root",password="root") #获取连接信息,查看database下所有表 summary(con) dbGetInfo(con) dbListTables(con) #断开连接 dbDisconnect(con)

 写入数据

dbWriteTable(conn, name, value, row.names=T...)

  • append=T 在数据库中原表的基础上追加

  • overwrite=T 覆盖数据库中的原表

testA <-data.frame(id=1:6,e=c("a","b","c","d","e","f"),c=c("我","的","世","界","变","得")) testB <-data.frame(id=7:13,e=c("g","h","i","j","k","l","m"),c=c("奇","妙","跟","难","以","言","喻")) #直接写testA写入test表中 dbWriteTable(con,"test",testA,row.names=T) dbReadTable(con,"test") #追加写testB追加在test表后 dbWriteTable(con,"test",testB,append=T,row.names=F) dbReadTable(con,"test") #覆盖写testB覆盖test表 dbWriteTable(con,"test",testB,overwrite=T,row.names=F) dbReadTable(con,"test") fruits <-data.frame(id=1:5,name=c("苹果","香蕉","梨子","玉米","西瓜"),price=c(8.8,4.98,7.8,6,2.1),status=c("无","打折","无","售罄","批发")) dbListTables(con) dbWriteTable(con,"fruits",fruits,overwrite=T,row.names=F) dbReadTable(con,"fruits")

读取数据

向数据库提交查询,并返回结果。

  • dbReadTable(conn, name, ...) 直接获得所读取表的全部数据

  • dbGetQuery(conn, statement, ...) 通过sql语句查询数据

#读数据库
#解决中文乱码问题
#dbSendQuery(con,'SET NAMES uft8')
dbReadTable(con,"test")

#用SQL语句查询dbGetQuery()和dbSendQuery()两种方法 dbGetQuery(con, "SELECT * FROM test limit 3") res <- dbSendQuery(con, "SELECT * FROM test") data <- dbFetch(res, n=2) #取前2条数据,n=-1时是获取所有数据 data data <- dbFetch(res, n=-1) #取余下所有数据 data dbClearResult(res)

用SQL语句批量查询,client.flag设置这样支持批量查询

con <- dbConnect(MySQL(),host="localhost",dbname="Quark",user="root",password="root",client.flag= CLIENT_MULTI_STATEMENTS) #client.flag设置这样支持批量查询 #dbSendQuery(con,'SET NAMES uft-8') sql <- "SELECT * FROM fruits;SELECT * FROM test" res1 <- dbSendQuery(con,sql) dbFetch(res1, n = -1) if (dbMoreResults(con)) { res2 <- dbNextResult(con) dbFetch(res2, n = -1) } dbListResults(con) dbClearResult(res1) dbClearResult(res2)

 删除表

dbRemoveTable(con,"test")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值