zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    《你的灯还亮着吗》读后感1
    找"1"
    阅读计划---《梦断代码》3
    阅读计划---《梦断代码》2
    个人工作总结(10)
    个人工作总结(9)
    个人工作总结(8)
    个人工作总结(7)
    学习进度条
    个人工作总结(6)
  • 原文地址:https://www.cnblogs.com/YukBrandes/p/5410712.html
Copyright © 2011-2022 走看看