• R-RMySQL包介绍学习


    参考内容:

    RMySQL数据库编程指南
    R语言使用RMySQL连接及读写Mysql数据库

    RMySql包安装和加载优点问题,试着根据提示简单安装和加载可以使用,后续再查询资料解决。

    3.2.1 连接数据库

    dbConnect(MySQL(),host="localhost",dbname,user="",password="", ...)

    library(RMySql)
    #可能是安装RMySQL的问题,导致直接library(RMySql)提示不存在RMySql包,通过下列方式可以加载成功(又挖一个坑...)
    library("RMySQL", lib.loc="/Library/Frameworks/R.framework/Versions/3.3/Resources/library")
    # Quark
    con <- dbConnect(MySQL(),host="localhost",dbname="Quark",user="root",password="root")
    #获取连接信息,查看database下所有表
    summary(con)  
    dbGetInfo(con)  
    dbListTables(con)
    #断开连接
    dbDisconnect(con)

    3.2.2 写入数据

    dbWriteTable(conn, name, value, row.names=T...)

    • append=T 在数据库中原表的基础上追加

    • overwrite=T 覆盖数据库中的原表

    testA <-data.frame(id=1:6,e=c("a","b","c","d","e","f"),c=c("我","的","世","界","变","得"))  
    testB <-data.frame(id=7:13,e=c("g","h","i","j","k","l","m"),c=c("奇","妙","跟","难","以","言","喻"))  
    #直接写testA写入test表中  
    dbWriteTable(con,"test",testA,row.names=T)
    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")
    
    fruits <-data.frame(id=1:5,name=c("苹果","香蕉","梨子","玉米","西瓜"),price=c(8.8,4.98,7.8,6,2.1),status=c("无","打折","无","售罄","批发"))  
    dbListTables(con)
    dbWriteTable(con,"fruits",fruits,overwrite=T,row.names=F)
    dbReadTable(con,"fruits")

    3.2.3 读取数据

    向数据库提交查询,并返回结果。

    • dbReadTable(conn, name, ...) 直接获得所读取表的全部数据

    • dbGetQuery(conn, statement, ...) 通过sql语句查询数据

    #读数据库
    #解决中文乱码问题
    #dbSendQuery(con,'SET NAMES uft8')
    dbReadTable(con,"test")
    
    #用SQL语句查询dbGetQuery()和dbSendQuery()两种方法  
    dbGetQuery(con, "SELECT * FROM test limit 3")     
    res <- dbSendQuery(con, "SELECT * FROM test")  
    data <- dbFetch(res, n=2) #取前2条数据,n=-1时是获取所有数据  
    data  
    data <- dbFetch(res, n=-1) #取余下所有数据  
    data  
    dbClearResult(res)

    用SQL语句批量查询,client.flag设置这样支持批量查询

    con <- dbConnect(MySQL(),host="localhost",dbname="Quark",user="root",password="root",client.flag= CLIENT_MULTI_STATEMENTS) 
    #client.flag设置这样支持批量查询
    #dbSendQuery(con,'SET NAMES uft-8')
    sql <- "SELECT * FROM fruits;SELECT * FROM test"
    res1 <- dbSendQuery(con,sql)
    dbFetch(res1, n = -1)
    if (dbMoreResults(con)) {
      res2 <- dbNextResult(con)
      dbFetch(res2, n = -1)
    }
    dbListResults(con)
    dbClearResult(res1)
    dbClearResult(res2)

    3.2.3 删除表

    dbRemoveTable(con,"test")
  • 相关阅读:
    React父组件调用子组件
    ES6数组操作
    ant design mobile入坑记
    vue
    图片上传七牛
    CSS
    CSS矩形、三角形等
    使用POST下载文件
    http https协议
    前端网络必备知识
  • 原文地址:https://www.cnblogs.com/nxld/p/6092278.html
Copyright © 2020-2023  润新知