r mysql_R语言使用RMySQL连接及读写Mysql数据库

本文介绍了如何在R语言中使用RMySQL包连接并操作MySQL数据库,包括安装MySQL、设置字符集、建立数据库连接、读写数据表、执行SQL查询等步骤,同时解决了中文乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单说下安装过程,一般不会有问题,重点是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

ea7aadcf420c06dfc883297307969b79.png

安装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

安装RMySQL

install.packages(“RMySQL”)

使用RMySQL操作数据库

library(RMySQL)

help(package=”RMySQL”) #查看RMySQL的说明文档,里面有RMySQL全部可用的方法

#创建数据库连接

con

#获取连接信息。查看database下全部表,以及删除testname表

summary(con)

dbGetInfo(con)

dbListTables(con)

dbRemoveTable(con,"test")

672e6370cd6666e78a38f7887a80e841.png

#写数据库表

fruits

dbListTables(con)

dbWriteTable(con,"fruits",fruits)

dbListTables(con)

173340f979ff7223d82c5705cae56c9e.png

#读数据库

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

dbSendQuery(con,‘SET NAMES uftf8‘)

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

ffbe7db421dfc49c0b0070974a29a6df.png

96654d71d3bbd28456c77562e4145b68.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")

b7df6d4c2f3f83b6689a6aaecedf75e7.png

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

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

res

data

data

data

data

dbClearResult(res)

dbDisconnect(con) #断开连接

7e96a8169e93c6777c580d8b3511e453.png

#用SQL语句批量查询

con

dbSendQuery(con,‘SET NAMES utf8‘)

sql

res1

dbFetch(res1, n = -1)

if (dbMoreResults(con)) {

res2

dbFetch(res2, n = -1)

}

dbListResults(con)

dbClearResult(res1)

dbClearResult(res2)

dbDisconnect(con)

018c8a9c2fd314981079745445b47fbd.png

參考:RMySQL数据库编程指南

有不论什么问题或建议欢迎提出!

转载请务必注明来源,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值