久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

R語言實現操作MySQL數據庫

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

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

軟件版本

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

安裝包


install.packages('RMySQL')

創建連接

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


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

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


# 連接概述
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"

創建表

dbCreateTable函數創建表


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

注意點:

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

sql語句創建表

運行dbSendQuery函數,調用sql語句創建表,該函數返回一個RMySQLResult類。該方法可以重復運行,不會報錯。


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

## <MySQLResult:11,5,3>

讀取表

dbReadTable函數讀取表


# 先設置編碼(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

注意點:

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

sql語句讀取表

通過運行dbGetQuery或dbSendQuery函數,調用sql語句讀取表。
dbGetQuery函數運行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函數運行sql語句,返回MySQLResult類。對該類使用dbFetch函數,可以篩選行,返回data.frame。用完后需要用dbClearResult函數清理結果。


# 篩選前3行數據
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函數寫入表


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

## [1] TRUE

注意點:

  • 第一次寫入時,若數據庫中無該表,會根據表名自動創建
  • 重復寫入時,需要設置寫入行為:

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

  • append和overwrite兩個參數不能同時設置為TRUE。

sql語句插入數據

運行dbSendStatment函數,調用sql語句插入數據。


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

注意點:

  • 重復運行會重復插入數據

刪除表

用dbRemoveTable函數刪除表。


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

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

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

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

完成所有的操作后,需要關閉連接。


# 關閉連接
dbDisconnect(con)


## [1] TRUE

到此這篇關于R語言實現操作MySQL數據庫的文章就介紹到這了,更多相關R語言操作MySQL內容請搜索html5模板網以前的文章希望大家以后多多支持html5模板網! 

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

相關文檔推薦

主站蜘蛛池模板: 国产精品欧美一区二区三区不卡 | 日韩不卡三区 | 色资源在线 | 老司机狠狠爱 | 在线国产一区二区 | 亚洲成人自拍 | 国产一二三区在线 | 午夜免费看 | 一区二区精品视频 | 中文字幕电影在线观看 | 精品久久久久久久久久久久久久久久久 | 亚洲免费视频在线观看 | 亚洲综合字幕 | 久久99精品视频 | 欧洲高清转码区一二区 | 狠狠草视频 | 91精品国产综合久久福利软件 | 国产天天操 | 中文字幕一级毛片视频 | 亚洲国产成人av好男人在线观看 | 91一区二区三区 | 国产精品久久久久久亚洲调教 | 成人久久久 | 亚洲精品无 | 一区欧美 | 亚洲一区视频在线 | 精品国产一区探花在线观看 | 欧美三区视频 | 色嗨嗨| 91日b| 久久99网站| 一区二区三区视频 | 欧美日韩免费一区二区三区 | 中文字幕在线免费视频 | 精品在线一区 | 亚洲视频 欧美视频 | 午夜日韩| 成人在线精品视频 | 久久伊人一区二区 | 视频一区二区在线观看 | 亚洲毛片网站 |