r语言 java mysql_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

35971f34ceb2ed68062822903d2773f6.png

安装mysql

1.      查看是否安装

yum list installed mysql*

2.      查看现有安装包

yumlist mysql*

3.      安装mysql服务器端

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 

#获取连接信息,查看database下所有表,以及删除testname表

summary(con)

dbGetInfo(con)

dbListTables(con)

dbRemoveTable(con,"test")

3f488d43b0d41fe12b76f35b20950b26.png

#写数据库表

fruits 

dbListTables(con)

dbWriteTable(con,"fruits",fruits)

dbListTables(con)

08325e6f8eeeaaa819fd66189e698dc5.png

#读数据库

dbReadTable(con,"fruits")#中文出现乱码,这是因为字符编码格式不统一的问题

dbSendQuery(con,'SET NAMES utf8')    #修正,原为:dbSendQuery(con,'SET NAMES uft8')

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

838f4eb022e860955fec0d26974e7d9a.png

ed45fb0f6bfa52fddfb54f979a810c99.png

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

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

019f9436e79516b094f87f01737962b6.png

#写数据表,覆盖追加

testA 

testB 

#直接写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")

8d6575346e46da5cad9b62ca42421398.png

#用SQL语句查询dbGetQuery()和dbSendQuery()两种方法

dbGetQuery(con, "SELECT * FROM fruits limit 3")

res 

data 

data

data 

data

dbClearResult(res)

dbDisconnect(con) #断开连接

e0ebd68f2a10cf7dbf2155f23343b8c1.png

#用SQL语句批量查询

con 

dbSendQuery(con,'SET NAMES uft-8')

sql 

res1 

dbFetch(res1, n = -1)

if (dbMoreResults(con)) {

res2 

dbFetch(res2, n = -1)

}

dbListResults(con)

dbClearResult(res1)

dbClearResult(res2)

dbDisconnect(con)

5d4eedc137b31ac63457bdbcc7cbb048.png

参考:RMySQL数据库编程指南

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值