r作為一款資料分析的工具,,而mysql是一款常用的開源關係型資料庫軟體,非常適用於中小型的資料儲存,當二者相互結合時才能爆發出巨大的能量。
rmysql程式包就為r提供了訪問mysql資料庫的介面程式,其不僅支援基本的資料庫訪問與查詢,還封裝了高效的資料操作方法,掌握好這些功能將使得資料的分析和處理更加得心應手。
## 2.1 執行環境
作業系統:[win10](
r版本:r-3.2.4-win
mysql版本:mysql community 5.7
rstudio版本:rstudio-0.99.896
使用第三方軟體包的安裝方法,在rstudio中輸入如下**:
install.packages('rmysql')
## 3.1 建立本地連線
rmysql中使用dbconnect函式指定與本地資料庫建立連線時,需要指定資料庫管理系統的類別,使用者名稱(username),密碼(password)以及需要操作的資料庫名稱(dbname)。
library(dbi)
library(rmysql)
con <- dbconnect(mysql(),username='analysis',password='1',dbname='ppd')
con <- dbconnect(mysql(),host='10.2.2.15',username='db_mysql',password='db_mysql',port=3306,dbname='bc-oss')
建立r與遠端mysql資料庫通訊時,只需要指定資料庫相應的伺服器位址和埠號。
con <- dbconnect(mysql(),host='127.0.0.1',username='analysis',password='1',port=3306,dbname='ppd')
summary(con)
dbdisconnect(con)
# dbwritetable(連線名,新建的表名,data.frame資料)
dbwritetable(con,'iris',iris[1:100,]) # 新建表並插入資料
dbreadtable(con,'iris') # 獲得整個表資料
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'))
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')
mysql資料庫訪問
實現在不是本機的機器上訪問mysql資料庫有 1.開啟連線,關閉放火牆 2.建立乙個允許遠端連線的訪問使用者 系統預設的root使用者預設為遠端無法連線 格式 grant select on 資料庫.to 使用者名稱 登入主機 identified by 密碼 例1 增加乙個使用者test1密碼為a...
MySql資料庫的訪問
import pymysql 建立乙個connection 物件,代表了乙個資料庫連線 connection pymysql.connect host 資料庫ip位址 user mysql使用者名稱 passwd mysql使用者登入密碼 db 資料庫名 如果資料庫裡面的文字是utf8編碼的,cha...
資料庫 mysql 跨庫訪問 資料庫跨庫訪問問題
sql server中的所有權鏈及其問題 沒有多少朋友對所有權鏈真的理解的。我自己有時候經常回過來看看這些資料,覺得還是很有意思的。下面的內容摘自微軟文件,介紹得比較好 簡而言之 1.如果在同乙個資料庫中,只要兩個物件的所有者是一樣的,那麼他們之間的訪問是不檢查訪問者身份的。例如乙個檢視和乙個表是屬...