R 在 sql 数据库中从 DBI 包中的函数中查找 table 时遇到问题,与 RSQLite 和 dbplyr 一起使用
R trouble finding the table in sql database from a function in DBI package, using with RSQLite and dbplyr
我一直在研究 Andrew Couch 关于 RSQLite、DBI 和 dbplyr 包的 YouTube 视频。 Here is the link.
但是,我 运行 遇到了一个错误,我不确定发生了什么。 YouTube 视频是一个很好的视频,但我认为 AC 运行 没有解决我遇到的同样问题,所以我认为它没有被诊断出来。
我首先加载库:
library(dbplyr)
library(RSQLite)
library(DBI)
然后我将 mtcars
重命名为 sql_mtcars
并创建到 SQLite 数据库的连接并将我的数据框复制到该数据库。
sql_mtcars <- mtcars
con <- RSQLite::dbConnect(SQLite(), ":memory:")
dplyr::copy_to(con, sql_mtcars)
我把它变成 table(我猜是因为我必须这么做?)
sql_mtcars_db <- tbl(con, "sql_mtcars")
我练习编写查询,然后测试查询的 SQL 版本。
sql_mtcars_db %>%
dplyr::select(car, mpg, wt) %>%
dplyr::show_query()
但这就是我卡住的地方。现在我尝试直接在下面编写 SQL 代码
来自 DBI 的 dbGetQuery 函数。
DBI::dbGetQuery(con, '
SELECT sql_mtcars_db.mpg
FROM sql_mtcars_db
')
我收到此错误消息提示:
Error: no such table: sql_mtcars_db
但这让我感到困惑,因为当我 运行 这行代码调用 table:
sql_mtcars_db
我可以看到 table 在 SQLite 数据库中。
table 名称是 sq_mtcars
- 即 select
语句是针对特定的 table
并且已经与数据库建立连接
DBI::dbGetQuery(con, '
SELECT sql_mtcars.mpg
FROM sql_mtcars
')
-输出
mpg
1 21.0
2 21.0
3 22.8
4 21.4
5 18.7
6 18.1
7 14.3
8 24.4
9 22.8
10 19.2
11 17.8
...
如有疑问,请列出table和
dbListTables(con)
[1] "sql_mtcars" "sqlite_stat1" "sqlite_stat4"
我一直在研究 Andrew Couch 关于 RSQLite、DBI 和 dbplyr 包的 YouTube 视频。 Here is the link.
但是,我 运行 遇到了一个错误,我不确定发生了什么。 YouTube 视频是一个很好的视频,但我认为 AC 运行 没有解决我遇到的同样问题,所以我认为它没有被诊断出来。
我首先加载库:
library(dbplyr)
library(RSQLite)
library(DBI)
然后我将 mtcars
重命名为 sql_mtcars
并创建到 SQLite 数据库的连接并将我的数据框复制到该数据库。
sql_mtcars <- mtcars
con <- RSQLite::dbConnect(SQLite(), ":memory:")
dplyr::copy_to(con, sql_mtcars)
我把它变成 table(我猜是因为我必须这么做?)
sql_mtcars_db <- tbl(con, "sql_mtcars")
我练习编写查询,然后测试查询的 SQL 版本。
sql_mtcars_db %>%
dplyr::select(car, mpg, wt) %>%
dplyr::show_query()
但这就是我卡住的地方。现在我尝试直接在下面编写 SQL 代码 来自 DBI 的 dbGetQuery 函数。
DBI::dbGetQuery(con, '
SELECT sql_mtcars_db.mpg
FROM sql_mtcars_db
')
我收到此错误消息提示:
Error: no such table: sql_mtcars_db
但这让我感到困惑,因为当我 运行 这行代码调用 table:
sql_mtcars_db
我可以看到 table 在 SQLite 数据库中。
table 名称是 sq_mtcars
- 即 select
语句是针对特定的 table
并且已经与数据库建立连接
DBI::dbGetQuery(con, '
SELECT sql_mtcars.mpg
FROM sql_mtcars
')
-输出
mpg
1 21.0
2 21.0
3 22.8
4 21.4
5 18.7
6 18.1
7 14.3
8 24.4
9 22.8
10 19.2
11 17.8
...
如有疑问,请列出table和
dbListTables(con)
[1] "sql_mtcars" "sqlite_stat1" "sqlite_stat4"