总结RMySql进行R对mysql数据库操作

总结RMySql进行Rmysql数据库操作

1下载并安装RMySQL

2、连接数据库

conn <- dbConnect(MySQL(), dbname = "mydatabase", username="root", password="1234",host="localhost", port=3306)  

#dbWriteTable(conn, "tablename", data) #写表 

dbDisconnect(conn) #关闭连接

3、对数据库进行操作

dbSendQuery(conn,'SET NAMES gbk') #如果表中有中文,读表之前设置编码防止乱码

table_1 <- dbReadTable(conn, "mytable_1") #读表

table_2 <- dbReadTable(conn,"mytable_2 ") 

student_info <-data.frame(user_id=1:3,user_name=c("张三","李四","王五" ),score = c(66,78,80))

dbWriteTable(conn, "",student_info) #写表 

#写数据表时,覆盖追加技巧

new_info <- data.frame(user_id=6:7,user_name=c("小明","小红"),score = c(82,74))

dbWriteTable(conn,"student_info ",new_info, append=T,row.names=F) #追加数据

dbWriteTable(conn," student_info ",testB,overwrite=T,row.names=F)#覆盖数据

5dbSendQuery的使用 

dbSendQuery返回的MySQLResult类型

dbGetQuery直接返回数据框data.frame

res <- dbSendQuery(conn, "SELECT *FROM table_1") 

data_1 <- dbFetch(res, n=5) #取前5条数据,n=-1时是获取所有数据 

data_2 <- dbFetch(res, n=-1) #取余下所有数据 

dbClearResult(res)  #清除数据

6、执行多条sql语句

sql <- "SELECT * FROM table_1;  SELECT * FROM table_2"  # 一次性执行完这两条

res1 <- dbSendQuery(con,sql) 

dbFetch(res1, n = -1) 

if (dbMoreResults(con)) {  #如果还有更多的结果

  res2 <- dbNextResult(con)  #读取下一个

  dbFetch(res2, n = -1) 

}

7、其他方法

summary(conn)  #连接信息

dbGetInfo(conn) 

dbListTables(conn)  #列出所有的表

dbExistsTable(conn,'table_name')#是否存在表

dbRemoveTable(conn,"table_name")  #删除表

dbListResults(conn) #列出所有的结果

 

dbClearResult(res) #清除结果

展开阅读全文

没有更多推荐了,返回首页