CommencerCommencez gratuitement

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>
Voir le 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’argument n à 2. Lors du second appel, importez toutes les lignes restantes (ne spécifiez pas n). Dans les deux appels, affichez simplement les data frames résultants.
  • Nettoyez res avec dbClearResult().

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
Modifier et exécuter le code