开始使用免费开始使用

发送 - 获取 - 清除

您已经多次使用 dbGetQuery() 了。它是 DBI 包中的一个虚函数,实际由 RMySQL 包实现。在幕后,会依次执行以下步骤:

  • 使用 dbSendQuery() 发送指定的查询;
  • 使用 dbFetch() 获取在数据库中执行该查询的结果;
  • 使用 dbClearResult() 清除结果。

这一次我们不使用 dbGetQuery(),而是手动实现上述步骤。虽然写起来更繁琐,但这样可以分批提取查询结果,而不是一次性全部取回。您可以在 dbFetch() 中通过设置参数 n 来实现分批获取。

本练习是课程的一部分

R 数据导入进阶

查看课程

练习说明

  • 先检查已为您编写好的 dbSendQuery() 调用。它会选择 id 大于 4 的用户的评论。
  • 使用 dbFetch() 两次。第一次调用时,将参数 n 设为 2,只导入查询结果中的 2 条记录;第二次调用时导入剩余的所有记录(不指定 n)。两次调用都直接打印得到的数据框。
  • 使用 dbClearResult() 清除 res

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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
编辑并运行代码