Rstudio R과 MySQL 연동
- R
- 2024. 8. 14.
RMySQL을 이용한 R과 MySQL 연동
MySQL은 데이터베이스를 아는 사람이라면 한번쯤은 써봤을 데이터베이스관리시스템(RDBMS)입니다. 대량의 데이터를 효율적으로 저장하고 관리하는데 특화된 시스템입니다. 데이터는 DB파일로 저장됩니다.
Rstudio도 데이터를 다루는 프로그램이어서 MySql과의 연동이 됩니다. Mysql과의 연동만으로도 데이터를 분석, 관리하기 좋은 환경이 되기 때문에 필히 알고 있어야 합니다. R의 패키지인 RMySQL을 통해서 MySQL 와 연동을 해보겠습니다.
RMySQL 패키지 설치하기
설치는 간단합니다.
install.packges("RMySQL")
library(RMySQL)
RMySQL을 사용하면 데이터베이스의 주요기능인 DDL, DML을 할 수 있습니다. DDL,DML의 관한 설명은 아래 포스팅을 확인하시기 바랍니다.
데이터베이스 연결
데이터베이스 파일을 불러오려면 먼저 해당 데이터베이스가 있는 호스트 서버와 연결되어야 합니다. con으로 연결루트를 만듭니다.
# MySQL 데이터베이스 연결
con <- dbConnect(RMySQL::MySQL(),
dbname = "your_database_name",
host = "your_host",
port = 3306,
user = "your_username",
password = "your_password")
데이터 조회
연결한 데이터베이스로 SQL 쿼리로 명령합니다.
query <- "SELECT * FROM your_table_name"
data <- dbGetQuery(con,query)
head(data)
데이터 삽입
데이터를 데이터베이스에 삽입하려면 dbWriteTable() 함수를 사용해 삽입합니다. 데이터프레임으로 테이블을 생성후 db에 넣습니다.
# 데이터프레임 생성
df <- data.frame(name=c("John","Jane"), age=c(30,25))
dbWriteTable(con, "new_table",df)
데이터 업데이트
기존 데이터베이스 내용을 업데이트하려면 dbExecute()
를 사용합니다. SQL쿼리의 UPDATE 를 이용하면 가능합니다.
update_query <- "UPDATE your_table_name SET age=31 WHERE name= 'John'"
dbExecute(con,update_query)
데이터 삭제
데이터베이스에 있는 내용을 삭제하려면 데이터 업데이트와 마찬가지로 dbExecute()를 이용합니다. 대신 쿼리문을 DELETE로 작성합니다.
delete_query <- "DELETE FROM your_table_name WHERE name= 'John'"
dbExecute(con,delete_query)
데이터베이스 연결 종료
작업이 끝난 후에는 데이터베이스 연결을 종료합니다. 종료를 안하면 운영체제 백그라운드에서 계속 켜진 상태로 시스템이 돌아가고 있기 때문에 메모리 낭비를 할 수 있으니 작업이 끝나면 연결 종료를 해야 합니다. 반드시 습관이 되어야 합니다.
마치며
RMySQL 패키지를 사용하면 R과 MySQL 데이터베이스를 쉽게 연동할 수 있습니다. R로 작업한 데이터를 보다 효율적으로 관리할 수 있을겁니다.
함께 보면 좋은 글
'R' 카테고리의 다른 글
[R] 리스트 벡터로 변환하기 (0) | 2024.08.07 |
---|---|
[R] ggplot2로 데이터 그래프 그리기 (0) | 2024.08.05 |
R 새로운 열 추가 방법 총정리 (0) | 2024.08.03 |
[R] dplyr 패키지를 이용한 손쉬운 데이터 조작 (0) | 2024.08.01 |
R 데이터 변환 정리글 (0) | 2024.07.31 |