MySQL数据库之R语言使用RMySQL连接及读写Mysql数据库
小标 2018-08-20 来源 : 阅读 2120 评论 0

摘要:本文主要向大家介绍了MySQL数据库之R语言使用RMySQL连接及读写Mysql数据库 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

本文主要向大家介绍了MySQL数据库之R语言使用RMySQL连接及读写Mysql数据库 ,通过具体的内容向大家展现,希望对大家学习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
1.      查看是否安装
yum list installed mysql*
2.      查看现有安装包
 yumlist mysql*
3.      安装mysqlserver端
 yuminstall mysql-devel
 yuminstall mysql-server
4.      设置mysql默认字符和引擎
 vim/etc/my.cnf
在[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
參考: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 uftf8‘)
dbReadTable(con,"fruits")#没有乱码问题了








#写数据表,覆盖追加
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()两种方法
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 utf8‘)
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)
 
dbDisconnect(con)

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved