Envoyer - Récupérer - Nettoyer
Vous avez utilisé dbGetQuery() plusieurs fois maintenant. C’est une fonction virtuelle du package DBI, mais elle est en réalité implémentée par le package RMySQL. En coulisses, les étapes suivantes sont effectuées :
- Envoi de la requête spécifiée avec
dbSendQuery(); - Récupération du résultat de l’exécution de la requête sur la base de données avec
dbFetch(); - Nettoyage du résultat avec
dbClearResult().
Ne passons pas par dbGetQuery() cette fois et implémentons les étapes ci-dessus. C’est fastidieux à écrire, mais cela vous permet de récupérer le résultat de la requête par morceaux plutôt qu’en une seule fois. Vous pouvez le faire en spécifiant l’argument n dans dbFetch().
Cet exercice fait partie du cours
<cours>Importation de données en R : niveau intermédiaire</cours>Instructions de l’exercice
- Examinez l’appel à
dbSendQuery()qui a déjà été codé pour vous. Il sélectionne les commentaires des utilisateurs ayant un identifiant supérieur à 4. - Utilisez
dbFetch()deux fois. Lors du premier appel, importez uniquement deux enregistrements du Résultat de la requête en fixant l’argumentnà2. Lors du second appel, importez toutes les lignes restantes (ne spécifiez pasn). Dans les deux appels, affichez simplement les data frames résultants. - Nettoyez
resavecdbClearResult().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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