Enviar - Buscar - Limpar
Você já usou dbGetQuery() várias vezes. Essa é uma função virtual do pacote DBI, mas quem a implementa de fato é o pacote RMySQL. Nos bastidores, os seguintes passos são executados:
- Enviar a consulta especificada com
dbSendQuery(); - Buscar o resultado da execução da consulta no banco de dados com
dbFetch(); - Limpar o resultado com
dbClearResult().
Desta vez, não vamos usar dbGetQuery() e vamos implementar os passos acima. É trabalhoso escrever, mas dá a você a possibilidade de buscar o resultado da consulta em partes, em vez de tudo de uma vez. Você pode fazer isso definindo o argumento n dentro de dbFetch().
Este exercício faz parte do curso
Importação de dados intermediária em R
Instruções do exercício
- Observe a chamada
dbSendQuery()que já foi escrita para você. Ela seleciona os comentários dos usuários com id acima de 4. - Use
dbFetch()duas vezes. Na primeira chamada, importe apenas dois registros do Resultado da consulta definindo o argumentoncomo2. Na segunda chamada, importe todas as consultas restantes (não especifiquen). Em ambas as chamadas, simplesmente imprima os data frames resultantes. - Limpe
rescomdbClearResult().
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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