보내기 - 가져오기 - 정리하기
지금까지 dbGetQuery()를 여러 번 사용하셨죠. 이는 DBI 패키지의 가상 함수이지만 실제 구현은 RMySQL 패키지가 담당합니다. 내부적으로는 다음 단계가 수행됩니다:
dbSendQuery()로 지정한 쿼리를 전송합니다.- 데이터베이스에서 쿼리를 실행한 결과를
dbFetch()로 가져옵니다. dbClearResult()로 결과를 정리합니다.
이번에는 dbGetQuery()를 사용하지 않고 위 단계를 직접 구현해 보겠습니다. 작성하기는 번거롭지만, 결과를 한 번에 모두 가져오는 대신 여러 번에 나눠 가져올 수 있다는 장점이 있습니다. 이를 위해서는 dbFetch()에 n 인수를 지정하면 됩니다.
이 연습은 강의의 일부입니다
R 데이터 가져오기 중급
연습 안내
- 이미 작성된
dbSendQuery()호출을 확인하세요. 이는 id가 4보다 큰 사용자의 댓글을 선택합니다. dbFetch()를 두 번 사용하세요. 첫 번째 호출에서는n인수를2로 설정해 쿼리 결과에서 두 개의 레코드만 가져오세요. 두 번째 호출에서는 나머지 전부를 가져오세요(이때는n을 지정하지 않습니다). 두 호출 모두 결과 데이터 프레임을 그대로 출력하세요.dbClearResult()로res를 정리하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Connect to the database
library(DBI)
con <- dbConnect(RMySQL::MySQL(),
dbname = "tweater",
host = "courses.csrrinzqubik.us-east-1.rds.amazonaws.com",
port = 3306,
user = "student",
password = "datacamp")
# Send query to the database
res <- dbSendQuery(con, "SELECT * FROM comments WHERE user_id > 4")
# Use dbFetch() twice
# Clear res