• Tidak ada hasil yang ditemukan

RMySQL

Dalam dokumen Xu Statistics and R (Halaman 150-155)

在表的 大小 不超 过内存 范围 和没有 特殊 查寻 需求的 情况

下 , 建 议 使 用 奒 的 多 元 数 据 操 作 函 数 , 例 如 奵奮奩奱奵奥夬 奭奥奲奧奥夬

奡奧奧奲奥奧奡奴奥 等央 参考多元数据操作 夵央夵央

具体 使用 夿奒奍她奓契奌 来 查看,下面是帮助央 失央 连结到数据库

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

奲奰她夲 与 奲奰她失央奸 使用方法有点不同央 详细参考见网站 奵女奥奲 奧奵奩奤奥

Dalam dokumen Xu Statistics and R (Halaman 150-155)

Dokumen terkait