R语⾔使⽤RMySQL连接及读写Mysql数据库R语⾔使⽤RMySQL连接及读写Mysql数据库
简单说下安装过程,⼀般不会有问题,重点是RMySQL的使⽤⽅式。
系统环境说明
Redhat系统:Linux 460-42.6.32-431.29.2.el6.x86_64
系统编码:LANG=zh_CN.UTF-8(中⽂UTF-8格式)
mysql版本:mysql Ver 14.14 Distrib 5.1.73, forredhat-linux-gnu (x86_64) using readline 5.1
mysql怎么读英语安装mysql
1. 查看是否安装
yum list installed mysql*
2. 查看现有安装包
yumlist mysql*
3. 安装mysql服务器端
yuminstall mysql-devel
yuminstall mysql-server
4. 设置mysql默认字符和引擎
vim/etc/myf
在[mysqld]下添加
default-character-set=utf8
default-storage-engine=INNODB
5. mysql启动和关闭
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
6. 设置开机mysql启动
/sbin/chkconfig - - list
/sbin/chkconfig add mysqld
/sbin/chkconfig mysqld on
songs参考:redhat下mysql安装与使⽤
安装RMySQL
install.packages(“RMySQL”)
使⽤RMySQL操作数据库
library(RMySQL)
help(package=”RMySQL”) #查看RMySQL的说明⽂档,⾥⾯有RMySQL所有可⽤的⽅法
#创建数据库连接
con <- dbConnect(MySQL(),host="host",dbname="test_dw",user="user",password="password")
#获取连接信息,查看database下所有表,以及删除testname表
summary(con)
dbGetInfo(con)
dbListTables(con)
dbRemoveTable(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)
dbListTables(con)
#读数据库
dbReadTable(con,"fruits")#中⽂出现乱码,这是因为字符编码格式不统⼀的问题
dbSendQuery(con,'SET NAMES utf8') #修正,原为:dbSendQuery(con,'SET NAMES uft8')
dbReadTable(con,"fruits")#没有乱码问题了
dbSendQuery(con,'SET NAMES uft8')这个设置⼀⽼会提⽰错误,可能会需要多试⼏次才⾏,不知道为什么。
注意:应为:dbSendQuery(con,'SET NAMES utf8')
#写数据表,覆盖追加
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=F)
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")
#⽤SQL语句查询dbGetQuery()和dbSendQuery()两种⽅法
virtual dialogue怎么翻译dbGetQuery(con, "SELECT * FROM fruits limit 3")
res <- dbSendQuery(con, "SELECT *FROM fruits")
data <- dbFetch(res, n=2) #取前2条数据,n=-1时是获取所有数据
data
data <- dbFetch(res, n=-1) #取余下所有数据
data
dbClearResult(res)
dbDisconnect(con) #断开连接
#⽤SQL语句批量查询
con <- dbConnect(MySQL(),host="host",dbname="test_dw",user="user",password="password",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)
oracle数据库培训课程dbClearResult(res2)
dbDisconnect(con)
参考:RMySQL数据库编程指南
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论