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

  • 相关阅读:
    程序员的7中武器
    需要强化的知识
    微软中国联合小i推出MSN群Beta 不需任何插件
    XML Notepad 2006 v2.0
    Sandcastle August 2006 Community Technology Preview
    [推荐] TechNet 广播 SQL Server 2000完结篇
    《太空帝国 4》(Space Empires IV)以及 xxMod 英文版 中文版 TDM Mod 英文版 中文版
    IronPython 1.0 RC2 更新 1.0.60816
    Microsoft .NET Framework 3.0 RC1
    《Oracle Developer Suite 10g》(Oracle Developer Suite 10g)V10.1.2.0.2
  • 原文地址:https://www.cnblogs.com/YukBrandes/p/5410712.html
Copyright © 2011-2022 走看看