在表的 大小 不超 过内存 范围 和没有 特殊 查寻 需求的 情况
下 , 建 议 使 用 奒 的 多 元 数 据 操 作 函 数 , 例 如 奵奮奩奱奵奥夬 奭奥奲奧奥夬
奡奧奧奲奥奧奡奴奥 等央 参考多元数据操作 夵央夵央
具体 使用 夿奒奍她奓契奌 来 查看,下面是帮助央 失央 连结到数据库
con <- dbConnect(MySQL(), group = "lasers")
con2 <- dbConnect(MySQL(), user="opto", password="pure-light", dbname="lasers", host="merced")
夲央 列出表和列名称 夨奌奩女奴 奴奡奢奬奥女 奡奮奤 夌奥奬奤女 奩奮 奡 奴奡奢奬奥天
失头夹
dbListTables(con)
dbListFields(con, "table\_name")
夳央 导 入夬导 出 表 到 奤奡奴奡央奦奲奡奭奥女央 事 先 表 若 不 存 在央 会 自 动 创 建 表央 奯奶奥奲奷奲奩奴奥夽奔奲奵奥 则 覆 盖 原 来 的 表央 夨奉奭奰奯奲奴 奡奮奤 奥奸奰奯奲奴 奤奡奴奡央奦奲奡奭奥女天
d <- dbReadTable(con, "WL")
dbWriteTable(con, "WL2", a.data.frame) ## table from a data.frame dbWriteTable(con, "test2", "~/data/test2.csv") ## table from a file
具体 使用见 夿奤奢套奲奩奴奥奔奡奢奬奥 其它常用参数还有
‘header=’, ‘row.names=’,
‘col.names=’, ‘sep=’, ‘eol=’, ‘field.types=’,
‘skip=’, and ‘quote=’
头央 执 行奓契奌命 令夬 并 将 结 果 返 回 给 奤奡奴奡央奦奲奡奭奥 夨奒奵奮 奡奮 奡奲奢奩奴奲奡奲她 奓契奌 女奴奡奴奥奭奥奮奴 奡奮奤 奥奸奴奲奡奣奴 奡奬奬 奩奴女 奯奵奴奰奵奴 夨奲奥奴奵奲奮女 奡 奤奡奴奡央奦奲奡奭奥天天
dbGetQuery(con, "select count(*) from a\_table") dbGetQuery(con, "select * from a\_table")
夵央 执 行奓契奌命 令夬 并 将 结 果 返 回 给 奲奥女奵奬奴 女奥奴央 夨 奒奵奮 奡奮 奓契奌 女奴奡奴奥奭奥奮奴 奡奮奤 奥奸奴奲奡奣奴 奩奴女 奯奵奴奰奵奴 奩奮 奰奩奥奣奥女 夨奲奥奴奵奲奮女 奡 奲奥女奵奬奴 女奥奴天天
rs <- dbSendQuery(con, "select * from WL where width\_nm between 0.5 and 1") d1 <- fetch(rs, n = 10000)
d2 <- fetch(rs, n = -1)
夶央 执 行 多 个奓契奌语 句夬 处 理 结 果 集央 夨奒奵奮 奭奵奬奴奩奰奬奥 奓契奌 女奴奡奴奥夭 奭奥奮奴女 奡奮奤 奰奲奯奣奥女女 奴奨奥 奶奡奲奩奯奵女 奲奥女奵奬奴 女奥奴女 夨奮奯奴奥 奴奨奥 奠奣奬奩奥奮奴央复奡奧大 奶奡奬奵奥 奩奮 奴奨奥 奠奤奢奃奯奮奮奥奣奴大 奣奡奬奬天天
失夵夰
con <- dbConnection(MySQL(), dbname = "rs-dbi", client.flag = CLIENT\_MULTI\_STATEMENTS)
script <- paste("select * from WL where width\_nm between 0.5 and 1"
"select * from lasers\_id where id LIKE ’AL100 sep = ";")
rs1 <- dbSendQuery(con, script) d1 <- fetch(rs1, n = -1)
if(dbMoreResults(con)){
rs2 <- dbNextResult(con) d2 <- fetch(rs2, n=-1) }
夷央 获 取 元 信 息央 夨奇奥奴 奭奥奴奡夭奩奮奦奯奲奭奡奴奩奯奮 奯奮 奡 奣奯奮奮奥奣奴奩奯奮 夨奴奨奲奥奡奤夭奩奤夬 奥奴奣央天天
summary(MySQL(), verbose = TRUE) summary(con, verbose = TRUE) summary(rs, verbose = TRUE) dbListConnections(MySQL()) dbListResultSets(con) dbHasCompleted(rs)
夸央 关闭连结央 夨奃奬奯女奥 奣奯奮奮奥奣奴奩奯奮女天
dbDisconnect(con) dbDisconnect(con2)
下面是几个例子。
> library(RMySQL) # will load DBI as well
## 打开一 个MySQL数据库的连接
> summary(MySQL(), verbose = TRUE)
<MySQLDriver:(4616)>
Driver name: MySQL Max connections: 16
失夵失
Conn. processed: 0
Default records per fetch: 500 DBI API version: 0.2-5
MySQL client version: 5.1.58 Open connections: 0
> con <- dbConnect(dbDriver("MySQL"), dbname = "taxonomy",user=’xjx’, password=’111111’)
> summary(con, verbose = TRUE)
<MySQLConnection:(9191,0)>
User: xjx
Host: localhost Dbname: taxonomy
Connection type: Localhost via UNIX socket MySQL server version: 5.1.58-1ubuntu1 MySQL client version: 5.1.58
MySQL protocol version: 10 MySQL server thread id: 43 No resultSet available
> con <- dbConnect(dbDriver("MySQL"), dbname = "test",user=’xxx’, password=’111111’)
## 列出数据库中表
> dbListTables(con)
## 把一 个数据框导入到数据库,删除任何已经存在的拷贝
> data(USArrests)
> dbWriteTable(con, "arrests", USArrests, overwrite = TRUE) TRUE
> dbListTables(con) [1] "arrests"
## 获得整个表
> dbReadTable(con, "arrests")
Murder Assault UrbanPop Rape
Alabama 13.2 236 58 21.2
Alaska 10.0 263 48 44.5
Arizona 8.1 294 80 31.0
Arkansas 8.8 190 50 19.5
...
## 从导入的表中查询
> dbGetQuery(con, paste("select row_names, Murder from arrests",
"where Rape > 30 order by Murder")) row_names Murder
失夵夲
1 Colorado 7.9 2 Arizona 8.1 3 California 9.0 4 Alaska 10.0 5 New Mexico 11.4 6 Michigan 12.1 7 Nevada 12.2 8 Florida 15.4
# 删除表
> dbRemoveTable(con, "arrests")
> dbDisconnect(con)
失夵夳
Chapter 8
在 在 在 python 中 中 中 调 调 调 用 用 用 R (rpy2)
安装 奲奰她夲
Web: http://rpy.sourceforge.net
奲奰她夲 与 奲奰她失央奸 使用方法有点不同央 详细参考见网站 奵女奥奲 奧奵奩奤奥