Skicka – hämta – rensa
Du har använt dbGetQuery() flera gånger nu. Det är en virtuell funktion från paketet DBI, men implementeras i praktiken av paketet RMySQL. Bakom kulisserna utförs följande steg:
- Skicka den angivna frågan med
dbSendQuery(); - Hämta resultatet av frågan från databasen med
dbFetch(); - Rensa resultatet med
dbClearResult().
Den här gången ska du inte använda dbGetQuery() utan implementera stegen ovan själv. Det är lite mer att skriva, men du får då möjligheten att hämta frågans resultat i delar i stället för allt på en gång. Det gör du genom att ange argumentet n inuti dbFetch().
Den här övningen är en del av kursen
Importera data på mellannivå i R
Övningsinstruktioner
- Granska anropet till
dbSendQuery()som redan är ifyllt. Det hämtar kommentarer från användare med ett id högre än 4. - Använd
dbFetch()två gånger. I det första anropet importerar du bara två poster från frågeresultatet genom att sätta argumentetntill2. I det andra anropet importerar du alla återstående poster (ange inten). Skriv ut de resulterande datarammarna i båda anropen. - Rensa
resmeddbClearResult().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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