행위

R MYSQL 연결

DB CAFE

Dbcafe (토론 | 기여)님의 2020년 12월 20일 (일) 15:02 판
thumb_up 추천메뉴 바로가기


1 MYSQL + Dataframe 연결[편집]

1.1 Mysql 패키지 설치[편집]

install.packages("RMySQL")
library(RMySQL)


1.2 Mysql 연결[편집]

drv = dbDriver("MySQL")
con = dbConnect(drv,host="호스트",dbname="디비명",user="사용자",pass="패스워드")

1.3 테이블 목록 가져오기[편집]

1) 테이블 목록

dbListTables(con)

2) 테이블의 컬럼 목록

dbListFields(con, '테이블명')

1.4 SELECT 쿼리 실행[편집]

dbSendQuery(con, 'SELECT * FROM TB_XXX')

1.5 INSERT 쿼리 실행[편집]

dbWriteTable(con, name='table_name', value=data.frame.name)

1.6 MYSQL 사용 예제[편집]

# 1.라이브러리 로드 
library(RMySQL)

# 2.DB Connection 
# drv = dbDriver("MySQL")
# con = dbConnect(drv,host="호스트",dbname="디비명",user="사용자",pass="패스워드") 
con <- dbConnect(MySQL(),dbname = '<dbName>',user = '<dbId>', password="<dbPasswd>")
 
# 3. 테이블/컬럼 목록 
dbListTables(con)
dbListFields(con, "<tableName>")
 
## 3. Import and export data.frames:
d <- dbReadTable(con, "<tableName>")
# load dataframe
dfData <- read.csv("./<csvFileName>.csv", head = T)
head(dfData)
tail(dfData)

# 4. dbWriteTable 이용하여 삽입 수행
dbWriteTable(con, "<csvFileName>", dfData, overwrite = T) ## table from a data.frame
 
##5. Run an SQL statement and extract its output in pieces (returns a result set)
## 데이터베이스로부터 데이터를 쿼리를 사용하여 가져옴 
## 데이터 형식은 DataFrame
#5.1 SendQurey 방식(FETCH 방식)
rs <- dbSendQuery(con, "select count(*) from <tableName>")
d1 <- fetch(rs, n = 10000)
d2 <- fetch(rs, n = -1) # 전체 fetch

class(d2) 
# > class(d2)
# [1] "data.frame"

#5.2 GetQuery 방식 (FETCH 없이 사용)
df.table <- dbGetQuery(con, "select * from <tableName>")
head(df.table)
class(df.table)
 
# 7. 연결 정보 조회 
summary(MySQL(), verbose = TRUE)
summary(con, verbose = TRUE)
summary(rs, verbose = TRUE)

dbListConnections(MySQL())
dbListResultSets(con)
dbHasCompleted(rs)
 
# 8. 커멋,롤백, 연결 종료 
# dbCommit() # 참고
# dbRollback() # 참고
# MySQL 확인 결과 dbWriteTable 결과는 AutoCommite 으로 사료

dbDisconnect(con) # disconnect