LoslegenKostenlos loslegen

Senden - Abrufen - Leeren

Du hast dbGetQuery() jetzt schon mehrfach verwendet. Das ist eine virtuelle Funktion aus dem Paket DBI, wird aber tatsächlich vom Paket RMySQL implementiert. Hinter den Kulissen passieren dabei folgende Schritte:

  • Senden der angegebenen Abfrage mit dbSendQuery();
  • Abrufen des Ergebnisses der Abfrage auf der Datenbank mit dbFetch();
  • Leeren des Ergebnisses mit dbClearResult().

Dieses Mal verwenden wir dbGetQuery() nicht und setzen die obigen Schritte selbst um. Das ist etwas umständlich zu schreiben, gibt dir aber die Möglichkeit, das Ergebnis der Abfrage in Teilstücken statt auf einmal abzurufen. Das erreichst du, indem du in dbFetch() das Argument n angibst.

Diese Übung ist Teil des Kurses

Fortgeschrittenes Importieren von Daten in R

Kurs anzeigen

Anleitung zur Übung

  • Sieh dir den bereits für dich geschriebenen Aufruf von dbSendQuery() an. Er wählt die Kommentare für Nutzer mit einer id größer als 4 aus.
  • Verwende dbFetch() zweimal. Importiere im ersten Aufruf nur zwei Datensätze des Ergebnis der Abfrage, indem du das Argument n auf 2 setzt. Importiere im zweiten Aufruf alle verbleibenden Datensätze (kein n angeben). Gib in beiden Aufrufen die resultierenden Data Frames einfach aus.
  • Leere res mit dbClearResult().

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 bearbeiten und ausführen