더북(TheBook)

RMySQL을 사용한 MySQL 입출력

여기서는 RMySQL로 MySQL 데이터베이스에 접속하고 질의를 수행하는 내용을 설명한다. 다음은 RMySQL에서 사용하는 함수들의 목록이다.

표 4-33 MySQL 함수

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]를 참고하기 바란다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.