R的数据库访问-MySQL
目录
1 RMySQL
R作为一款数据分析的工具,,而MySQL是一款常用的开源关系型数据库软件,非常适用于中小型的数据存储,当二者相互结合时才能爆发出巨大的能量。
RMySQL程序包就为R提供了访问MySQL数据库的接口程序,其不仅支持基本的数据库访问与查询,还封装了高效的数据操作方法,掌握好这些功能将使得数据的分析和处理更加得心应手。
2 环境与安装
## 2.1 运行环境 操作系统:[Win10](http://www.itellyou.cn/)R版本:R-3.2.4-win
MySQL版本:MySQL Community 5.7
RStudio版本:RStudio-0.99.896
2.2 安装RMySQL
使用第三方软件包的安装方法,在RStudio中输入如下代码:
install.packages('RMySQL')
3 建立通信
## 3.1 建立本地连接RMySQL中使用dbConnect函数指定与本地数据库建立连接时,需要指定数据库管理系统的类别,用户名(username),密码(password)以及需要操作的数据库名称(dbname)。
library(DBI)
library(RMySQL)
con <- dbConnect(MySQL(),username='analysis',password='1',dbname='ppd')
除了上节提到的参数以外,完整的数据库连接设置还应该指定服务器地址(host)与访问端口号(port),所以建立本地数据库连接完整的如下:
con <- dbConnect(MySQL(),host='10.2.2.15',username='db_mysql',password='db_mysql',port=3306,dbname='bc-oss')
3.2 建立远程连接
建立R与远程MySQL数据库通信时,只需要指定数据库相应的服务器地址和端口号。
con <- dbConnect(MySQL(),host='127.0.0.1',username='analysis',password='1',port=3306,dbname='ppd')
3.3 MySQL连接信息
summary(con)
3.4 关闭连接
dbDisconnect(con)
4 基本操作
4.1 数据读写
# dbWriteTable(连接名,新建的表名,data.frame数据)
dbWriteTable(con,'iris',iris[1:100,]) # 新建表并插入数据
dbReadTable(con,'iris') # 获得整个表数据
dbWriteTable(con,'iris',iris[101:150,],append = T) # 新增数据
dbWriteTable(con,'iris',iris[1:20,],overwrite = T) # 覆盖原表数据
dbWriteTable(con,'iris',iris[1:15,],row.names = F,overwrite = T) # 不插入row.names字段
dbListTables(con) # 查看数据库的表
dbListFields(con,'iris') # 查看某表的字段
dbSendQuery(con,'insert into iris values (5.8,4.0,1.2,0.2,"setosa")') # 插入记录
if(dbExistsTable(con,'iris')){
dbRemoveTable(con,'iris') # 删除表
}
4.2 SQL操作
querryData <- dbGetQuery(con,'select * from iris where `Sepal.Length` > 0') # 查询数据
class(querryData)
summary(querryData)
分页
querrySql <- dbSendQuery(con,'select * from iris where `Sepal.Length` > 0') # 执行SQL脚本查询,并分页
querryData <- fetch(querrySql,n = 1) # 截取的记录数
querryData <- fetch(querrySql,n = -1) # 截取的记录数
summary(querryData)
如果数据库中存在中文字符
dbSendQuery(con,'SET NAMES gbk')
dbListFields(con,'city')
5 案例实践
联系作者:YukBrandes@Gmail.com