RMySQL을 사용한 MySQL 입출력
여기서는 RMySQL로 MySQL 데이터베이스에 접속하고 질의를 수행하는 내용을 설명한다. 다음은 RMySQL에서 사용하는 함수들의 목록이다.
RMySQL::dbConnect : 데이터베이스에 접속한다. |
RMySQL::dbConnect( drv, # 데이터베이스 드라이버(RPgSQL, ROracle, MySQL 등) user, # 사용자 이름 password, # 비밀번호 dbname, # 데이터베이스 이름 host # 호스트 ) 반환 값은 데이터 베이스 접속 객체다. |
RMySQL::dbListTables : 데이터베이스의 테이블 목록을 얻는다. |
RMySQL::dbListTables(
conn # 데이터베이스 접속
)
반환 값은 데이터베이스의 테이블 목록이다. |
RMySQL::dbGetQuery : 데이터베이스에 주어진 질의를 실행한다. |
RMySQL::dbGetQuery( conn, # 데이터베이스 접속 statement # 수행할 질의 ) 반환 값은 질의 결과를 저장한 데이터 프레임이다. |
다음은 dbConnect( )를 사용해 MySQL에 접속하고 테이블 목록을 보는 예다. 아래 코드에서 password의 값은 각자가 설정한 비밀번호로 입력하기 바란다.
> con <- dbConnect(MySQL(), user="rprogramming", password="<비밀번호>", + dbname="rprogramming", host="127.0.0.1") > dbListTables(con) [1] "score"
실행 결과 앞에서 생성한 score 테이블을 볼 수 있다.
다음은 score 테이블의 내용을 select 문으로 확인하고 그 결과를 데이터 프레임으로 받는 예다.
> dbGetQuery(con, "select * from score");
name score
1 a 1
2 b 3
처리할 데이터를 MySQL에 넣고, 복잡한 전처리를 미리 SQL 스크립트 파일로 작성해 MySQL 클라이언트에서 수행해둔다면, 이 정도의 명령만으로 R에서 MySQL을 사용하는 데 큰 문제가 없을 것이다. 만약 더 많은 함수(예를 들어, 질의 후 결과를 한 행씩 처리해야 하는 것 등)가 필요하다면 RMySQL로 도움말을 살펴보거나 RMySQL Reference[3]를 참고하기 바란다.