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

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