Aan de slagBegin gratis

Send - Fetch - Clear

Je hebt dbGetQuery() nu meerdere keren gebruikt. Dit is een virtuele functie uit het DBI-pakket, maar wordt in werkelijkheid geïmplementeerd door het RMySQL-pakket. Achter de schermen worden de volgende stappen uitgevoerd:

  • De opgegeven query verzenden met dbSendQuery();
  • Het resultaat van het uitvoeren van de query op de database ophalen met dbFetch();
  • Het resultaat opruimen met dbClearResult().

Laten we deze keer dbGetQuery() niet gebruiken en de bovenstaande stappen zelf uitvoeren. Dit is wat omslachtig om te schrijven, maar het geeft je de mogelijkheid om het queryresultaat in stukken op te halen in plaats van alles in één keer. Dat kan door het argument n in dbFetch() te specificeren.

Deze oefening maakt deel uit van de cursus

Gevorderd data importeren in R

Bekijk cursus

Oefeninstructies

  • Bekijk de dbSendQuery()-aanroep die al voor je is gecodeerd. Hij selecteert de comments voor de gebruikers met een id groter dan 4.
  • Gebruik dbFetch() twee keer. Haal in de eerste aanroep slechts twee records van het queryresultaat op door het argument n op 2 te zetten. Haal in de tweede aanroep alle resterende records op (specificeer n niet). Print in beide aanroepen simpelweg de resulterende data frames.
  • Ruim res op met dbClearResult().

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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
Code bewerken en uitvoeren