pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

R語言實現(xiàn)操作MySQL數(shù)據(jù)庫

這篇文章主要介紹了R語言實現(xiàn)操作MySQL數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

用R語言做數(shù)據(jù)分析時,常常需要從多種數(shù)據(jù)源取數(shù)據(jù),其中數(shù)據(jù)庫是非常常見的數(shù)據(jù)源。用R操作MySQL數(shù)據(jù)庫,可以說是數(shù)據(jù)分析師必備的技能了,本文介紹RMySQL包,可以在R語言中對數(shù)據(jù)庫進行增刪改查的操作。

軟件版本

  • win10 64bit
  • r3.6.1
  • rstudio 1.2
  • RMySQL 0.10.20

安裝包


install.packages('RMySQL')

創(chuàng)建連接

用dbConnect函數(shù)創(chuàng)建連接,驅(qū)動類型設(shè)置為MySQL(),用戶名user、密碼password、主機host、端口port、數(shù)據(jù)庫dbname這些參數(shù)需要根據(jù)實際情況修改,其中端口port默認(rèn)值是3306。


# 加載包
library(RMySQL)
# 創(chuàng)建連接
con <- dbConnect(MySQL(),
         user="root",
         password="xxx",
         host="192.168.1.244",
         port=3306,
         dbname="test")

還可以通過一些命令,查看連接的相關(guān)信息。


# 連接概述
summary(con)

## <MySQLConnection:0,5>
##  User:  root 
##  Host:  192.168.1.244 
##  Dbname: test 
##  Connection type: 192.168.1.244 via TCP/IP 
## 
## Results:

# 連接詳情
dbGetInfo(con)

## $host
## [1] "192.168.1.244"
## 
## $user
## [1] "root"
## 
## $dbname
## [1] "test"
## 
## $conType
## [1] "192.168.1.244 via TCP/IP"
## 
## $serverVersion
## [1] "5.7.23"
## 
## $protocolVersion
## [1] 10
## 
## $threadId
## [1] 465075
## 
## $rsId
## list()

# 列出連接下所有表
dbListTables(con)

## [1] "city"     "result"    
## [3] "t_json"    "tb_newChiller"

創(chuàng)建表

dbCreateTable函數(shù)創(chuàng)建表


# 方法1:字符向量
dbCreateTable(con,'table1',fields =c("id"='int',"value"="float"))
# 方法2:數(shù)據(jù)框
dbCreateTable(con,'table2',fields = mtcars)

注意點:

  • 設(shè)置fields參數(shù)時,用命名的字符向量(名字為字段名,值為字段數(shù)據(jù)類型)或數(shù)據(jù)框表示
  • 表只能創(chuàng)建一次,重復(fù)創(chuàng)建會報錯。

sql語句創(chuàng)建表

運行dbSendQuery函數(shù),調(diào)用sql語句創(chuàng)建表,該函數(shù)返回一個RMySQLResult類。該方法可以重復(fù)運行,不會報錯。


# 方法3:sql語句
dbSendQuery(con,'create table if not exists table3(id int,value float)')

## <MySQLResult:11,5,3>

讀取表

dbReadTable函數(shù)讀取表


# 先設(shè)置編碼(windows)
dbSendQuery(con,'set names gbk') 
 
## <MySQLResult:11,5,4>

# 讀取完整表
dbReadTable(con,'city')
 
##  id name city_code
## 1 1 北京  000001
## 2 4 南京  000002
## 3 7 廣州  000003
## 4 10 上海  000004
## 5 11 深圳  000005
## 6 13 蘇州  000006

注意點:

  • 返回的是整個表的數(shù)據(jù)
  • 為解決中文顯示問題,若運行R的操作系統(tǒng)為window,需要設(shè)置編碼為gbk,為Linux則需要設(shè)置為utf8
  • 返回的數(shù)據(jù)格式為data.frame

sql語句讀取表

通過運行dbGetQuery或dbSendQuery函數(shù),調(diào)用sql語句讀取表。
dbGetQuery函數(shù)運行sql語句,返回data.frame。可以在sql語句中編寫篩選語句。


# 讀取完整表
dbGetQuery(con,'select * from city')
 
##  id name city_code
## 1 1 北京  000001
## 2 4 南京  000002
## 3 7 廣州  000003
## 4 10 上海  000004
## 5 11 深圳  000005
## 6 13 蘇州  000006

# 讀取篩選的表
dbGetQuery(con,'select id,name from city where id > 10')
 
##  id name
## 1 11 深圳
## 2 13 蘇州

dbSendQuery函數(shù)運行sql語句,返回MySQLResult類。對該類使用dbFetch函數(shù),可以篩選行,返回data.frame。用完后需要用dbClearResult函數(shù)清理結(jié)果。


# 篩選前3行數(shù)據(jù)
res <- dbSendQuery(con,'select * from city')
dbFetch(res,3)
 
##  id name city_code
## 1 1 北京  000001
## 2 4 南京  000002
## 3 7 廣州  000003

dbClearResult(res)
 
## [1] TRUE

寫入表

dbWriteTable函數(shù)寫入表


# 寫入表
dbWriteTable(con,"iris",iris,row.names=FALSE,append=TRUE)

## [1] TRUE

注意點:

  • 第一次寫入時,若數(shù)據(jù)庫中無該表,會根據(jù)表名自動創(chuàng)建
  • 重復(fù)寫入時,需要設(shè)置寫入行為:

參數(shù)設(shè)置 解釋
append=TRUE 追加寫入,新數(shù)據(jù)在原數(shù)據(jù)行末添加
overwrite=TRUE 覆蓋寫入,新數(shù)據(jù)覆蓋原數(shù)據(jù)
row.names=FALSE 不寫入數(shù)據(jù)框的行名

  • append和overwrite兩個參數(shù)不能同時設(shè)置為TRUE。

sql語句插入數(shù)據(jù)

運行dbSendStatment函數(shù),調(diào)用sql語句插入數(shù)據(jù)。


dbSendStatement(con,'insert into table1 values(1,12)')
## <MySQLResult:1701147206,5,12>

注意點:

  • 重復(fù)運行會重復(fù)插入數(shù)據(jù)

刪除表

用dbRemoveTable函數(shù)刪除表。


# 刪除表
dbRemoveTable(con,'table1')
## [1] TRUE

dbRemoveTable(con,'table2')
## [1] TRUE

dbRemoveTable(con,'table3')
## [1] TRUE

dbRemoveTable(con,'iris')
## [1] TRUE

完成所有的操作后,需要關(guān)閉連接。


# 關(guān)閉連接
dbDisconnect(con)


## [1] TRUE

到此這篇關(guān)于R語言實現(xiàn)操作MySQL數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)R語言操作MySQL內(nèi)容請搜索html5模板網(wǎng)以前的文章希望大家以后多多支持html5模板網(wǎng)! 

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

主站蜘蛛池模板: 热闷罐-高温罐-钢渣热闷罐-山东鑫泰鑫智能热闷罐厂家 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 聚丙烯酰胺PAM-聚合氯化铝PAC-絮凝剂-河南博旭环保科技有限公司 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 通风天窗,通风气楼,屋顶通风天窗,屋顶通风天窗公司 | 重庆轻质隔墙板-重庆安吉升科技有限公司 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 济南铝方通-济南铝方通价格-济南方通厂家-山东鲁方通建材有限公司 | 沈阳激光机-沈阳喷码机-沈阳光纤激光打标机-沈阳co2激光打标机 | 工业废水处理|污水处理厂|废水治理设备工程技术公司-苏州瑞美迪 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 深圳3D打印服务-3D打印加工-手板模型加工厂-悟空打印坊 | 校服厂家,英伦校服定做工厂,园服生产定制厂商-东莞市艾咪天使校服 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 茶叶百科网-茶叶知识与茶文化探讨分享平台 | 不锈钢水箱厂家,不锈钢保温水箱-山东桑特供水设备 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 飞飞影视_热门电影在线观看_影视大全 | 置顶式搅拌器-优莱博化学防爆冰箱-磁驱搅拌器-天津市布鲁克科技有限公司 | 多功能三相相位伏安表-变压器短路阻抗测试仪-上海妙定电气 | 识禅_对禅的了解,从这里开始| 紫外荧光硫分析仪-硫含量分析仪-红外光度测定仪-泰州美旭仪器 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 安徽集装箱厂-合肥国彩钢结构板房工程有限公司 | 搅拌磨|搅拌球磨机|循环磨|循环球磨机-无锡市少宏粉体科技有限公司 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 | 淘气堡_室内儿童乐园_户外无动力儿童游乐设备-高乐迪(北京) | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 数显恒温油浴-电砂浴-高温油浴振荡器-常州迈科诺仪器有限公司 | 在线PH计-氧化锆分析仪-在线浊度仪-在线溶氧仪- 无锡朝达 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 废水处理-废气处理-工业废水处理-工业废气处理工程-深圳丰绿环保废气处理公司 | 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 |