Send - Fetch - Clear
Funkci dbGetQuery() jsi teď použil/a už několikrát. Jde o virtuální funkci z balíčku DBI, která je ale ve skutečnosti implementována balíčkem RMySQL. Za běhu přitom probíhají tyto kroky:
- Odeslání zadaného dotazu pomocí
dbSendQuery(); - Načtení výsledku vykonání dotazu na databázi pomocí
dbFetch(); - Vymazání výsledku pomocí
dbClearResult().
Tentokrát dbGetQuery() nepoužijeme a výše uvedené kroky provedeme ručně. Je to trochu pracnější, ale dává ti to možnost načítat výsledky dotazu po částech, ne najednou. Stačí nastavit argument n uvnitř dbFetch().
Toto cvičení je součástí kurzu
Intermediate Importing Data in R
Pokyny k cvičení
- Prohlédni si volání
dbSendQuery(), které už je připravené v kódu. Vybírá komentáře uživatelů s id větším než 4. - Použij
dbFetch()dvakrát. V prvním volání načti pouze dva záznamy z výsledku dotazu – nastav argumentnna2. Ve druhém volání načti všechny zbývající záznamy (argumentnnezadávej). V obou případech výsledný datový rámec jednoduše vypiš. - Vymažte
respomocídbClearResult().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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