
118
|
第
4
章
使用 dbGetQuery 很方便,因为它将结果集打包到数据框中并返回数据框。这是 SQL
结果集的完美表示。结果集会以行和列格式的表格数据显示,数据框也是如此。结果集
中列的名称由 SQL 的 SELECT 语句确定,R 把这些名称用于数据框的列名称。
重复调用 dbGetQuery 以执行多个查询。完成后,使用 dbDisconnect 断开数据库连接:
dbDisconnect(con)
下面是从股价数据库中读取和显示三行数据的完整过程。查询 IBM 股票在 2008 年最后 3
天的价格。假定在
my.cnf
文件中定义了 usrname、password、dbname 和 host 参数:
con <- dbConnect(RMySQL::MySQL())
sql <- paste(
"select * from DailyBar where Symbol = 'IBM'",
"and Day between '2008-12-29' and '2008-12-31'"
)
rows <- dbGetQuery(con, sql)
dbDisconnect(con)
print(rows)
## Symbol Day Next OpenPx HighPx LowPx ClosePx AdjClosePx
## 1 IBM 2008-12-29 2008-12-30 81.72 81.72 79.68 81.25 81.25
## 2 IBM 2008-12-30 2008-12-31 ...