library(tidyverse)
con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
copy_to(con, mtcars)
mtcars2 <- tbl(con, "mtcars")
mtcars3 <- DBI::dbGetQuery(con, "SELECT * FROM mtcars LIMIT 5")
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> 1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#> 2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
我可以在上面创建模拟SQL连接。然后,我可以使用DBI
运行SQL查询,从mtcars
中选择前五行,也如上所示。
如果我尝试以其他方式(如下所示)执行此操作,则会收到以下语法错误:
mtcars4 <- DBI::dbGetQuery(con, "SELECT TOP 5 * FROM mtcars")
#> Error: near "5": syntax error
我的语法出了什么问题?
@ErrorJordan之前曾向我解释,“根据您要访问的数据库类型,SQL语法略有不同。” 。这是真正的问题吗?而我该如何把握呢?