R语言学习笔记——RMySQL基本操作
2014-03-12 17:06
309 查看
# 建表并插入数据 > t_demo<-data.frame( a=seq(1:10), b=letters[1:10], c=rnorm(10) ) > dbWriteTable(conn, "t_demo", t_demo) # 获得整个表数据 > dbReadTable(conn, "t_demo") a b c 1 1 a 0.98868164 2 2 b -0.66935770 3 3 c 0.27703638 4 4 d 1.36137156 5 5 e -0.70291017 6 6 f 1.61235088 7 7 g 0.17616068 8 8 h 0.29700017 9 9 i 0.19032719 10 10 j -0.06222173 # 插入新数据 > dbWriteTable(conn, "t_demo", t_demo, append=TRUE) > dbReadTable(conn, "t_demo") row_names a b c 1 1 1 a 0.98868164 2 2 2 b -0.66935770 3 3 3 c 0.27703638 4 4 4 d 1.36137156 5 5 5 e -0.70291017 6 6 6 f 1.61235088 7 7 7 g 0.17616068 8 8 8 h 0.29700017 9 9 9 i 0.19032719 10 10 10 j -0.06222173 11 1 1 a 0.98868164 12 2 2 b -0.66935770 13 3 3 c 0.27703638 14 4 4 d 1.36137156 15 5 5 e -0.70291017 16 6 6 f 1.61235088 17 7 7 g 0.17616068 18 8 8 h 0.29700017 19 9 9 i 0.19032719 20 10 10 j -0.06222173 # 覆盖原表数据 > dbWriteTable(conn, "t_demo", t_demo, overwrite=TRUE) # 1). 查询数据 > d0 <- dbGetQuery(conn, "SELECT * FROM t_demo where c>0") > class(d0) [1] "data.frame" > d0 row_names a b c 1 1 1 a 0.9886816 2 3 3 c 0.2770364 3 4 4 d 1.3613716 4 6 6 f 1.6123509 5 7 7 g 0.1761607 6 8 8 h 0.2970002 7 9 9 i 0.1903272 # 2). 执行SQL脚本查询,并分页 > rs <- dbSendQuery(conn, "SELECT * FROM t_demo where c>0") > class(rs) [1] "MySQLResult" attr(,"package") [1] "RMySQL" > mysqlCloseResult(rs) [1] TRUE > d1 <- fetch(rs, n = 3) > d1 row_names a b c 1 1 1 a 0.9886816 2 3 3 c 0.2770364 3 4 4 d 1.3613716 # 3). 查看集统计信息 > summary(rs, verbose = TRUE) row_names a b c Length:7 Min. :1.000 Length:7 Min. :0.1762 Class :character 1st Qu.:3.500 Class :character 1st Qu.:0.2337 Mode :character Median :6.000 Mode :character Median :0.2970 Mean :5.429 Mean :0.7004 3rd Qu.:7.500 3rd Qu.:1.1750 Max. :9.000 Max. :1.6124 # 不插入row.names字段 > dbWriteTable(conn, "t_demo", t_demo,row.names=FALSE,overwrite=TRUE) > dbGetQuery(conn, "SELECT * FROM t_demo where c>0") a b c 1 1 a 0.9886816 2 3 c 0.2770364 3 4 d 1.3613716 4 6 f 1.6123509 5 7 g 0.1761607 6 8 h 0.2970002 7 9 i 0.1903272 # 删除表 > if(dbExistsTable(conn,'t_demo')){ + dbRemoveTable(conn, "t_demo") + } [1] TRUE 执行SQL语句,dbSendQuery > query<-dbSendQuery(conn, "show tables") > data <- fetch(query, n = -1) > data Tables_in_rmysql 1 t_demo 2 t_user > mysqlCloseResult(query) [1] TRUE
中文问题解决:
mysql> select * from t_user; +----+-----------+ | id | user | +----+-----------+ | 1 | A1 | | 2 | B1 | | 3 | fens.me | | 5 | 你好 | | 4 | 小朋友 | | 6 | 正确了 | +----+-----------+
在R中选择
> users <- dbGetQuery(conn, "select * from t_user"); > users id user 1 1 A1 2 2 B1 3 3 fens.me 4 5 ?? 5 4 ??? 6 6 ???
解决办法:
> conn <- dbConnect(m, user = "root", password = "144230", dbname = "test", host="localhost.localdomain")
> dbSendQuery(conn,'SET NAMES gbk')
<MySQLResult:(9246,3,0)>
> users <- dbGetQuery(conn, "select * from t_user"); > users id user 1 1 A1 2 2 B1 3 3 fens.me 4 5 ?? 5 4 ??? 6 6 ???
> query <- dbSendQuery(conn, "SELECT * FROM t_user")
> data <- fetch(query, n = -1)
> mysqlCloseResult(query)
[1] TRUE
> data
id user
1 1 A1
2 2 B1
3 3 fens.me
4 5 \xc4\xe3\xba\xc3
5 4 С\xc5\xf3\xd3\xd1
6 6 \xd5\xfdȷ\xc1\xcb
相关文章推荐
- R语言学习笔记——R语言数据处理基本操作
- MYSQL学习笔记-基本操作
- Git学习笔记(2)--Git基本操作
- PHP学习笔记(2)--PHP数据库操作基本知识
- MySQL 5.1学习笔记(1)-基本操作
- R语言学习1--基本操作及创建数据集
- MySQL学习笔记3:表的基本操作介绍
- Docker学习笔记(三)之容器的基本操作
- C++基础的不能再基础的学习笔记——顺序容器(基本操作)
- c++学习笔记—单链表基本操作的实现
- MySQL学习笔记1----MySQL数据库基本操作
- opencv学习笔记1:矩阵和图像基本操作
- TensorFlow学习笔记之四——源码分析之基本操作
- linux学习笔记:linux中文件的基本操作
- javascript 学习笔记(一)DOM基本操作
- LINQ学习笔记三-----基本查询操作
- hive学习笔记——表的基本的操作
- 【MYSQL数据库】MYSQL学习笔记-mysql分区基本操作
- MongoDB 环境配置和基本操作-----专属学习笔记
- 吴恩达深度学习课程笔记之卷积神经网络基本操作详解