R语言使用RMySQL连接及读写Mysql数据库
2023-09-14 08:59:51 时间
简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式。
系统环境说明
Redhat系统:Linux 460-42.6.32-431.29.2.el6.x86_64
系统编码:LANG=zh_CN.UTF-8(中文UTF-8格式)
MySQL版本:mysql Ver 14.14 Distrib 5.1.73, forredhat-linux-gnu (x86_64) using readline 5.1
安装mysql
1. 查看是否安装
yum list installed mysql*
2. 查看现有安装包
yumlist mysql*
3. 安装mysql服务器端
yuminstall mysql-devel
yuminstall mysql-server
4. 设置mysql默认字符和引擎
vim/etc/my.cnf
在[mysqld]下添加
default-character-set=utf8
default-storage-engine=INNODB
5. mysql启动和关闭
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
6. 设置开机mysql启动
/sbin/chkconfig - - list
/sbin/chkconfig add mysqld
/sbin/chkconfig mysqld on
安装RMySQL
install.packages(“RMySQL”)
使用RMySQL操作数据库
- library(RMySQL)
- help(package=”RMySQL”) #查看RMySQL的说明文档,里面有RMySQL所有可用的方法
- #创建数据库连接
- con <- dbConnect(MySQL(),host="host",dbname="test_dw",user="user",password="password")
- #获取连接信息,查看database下所有表,以及删除testname表
- summary(con)
- dbGetInfo(con)
- dbListTables(con)
- dbRemoveTable(con,"test")
- #写数据库表
- fruits <-data.frame(id=1:5,name=c("苹果","香蕉","梨子","玉米","西瓜"),price=c(8.8,4.98,7.8,6,2.1),status=c("无","打折","无","售罄","批发"))
- dbListTables(con)
- dbWriteTable(con,"fruits",fruits)
- dbListTables(con)
- #读数据库
- dbReadTable(con,"fruits")#中文出现乱码,这是因为字符编码格式不统一的问题
- dbSendQuery(con,'SET NAMES uftf8')
- dbReadTable(con,"fruits")#没有乱码问题了
- #写数据表,覆盖追加
- testA <-data.frame(id=1:6,e=c("a","b","c","d","e","f"),c=c("我","的","世","界","变","得"))
- testB <-data.frame(id=7:13,e=c("g","h","i","j","k","l","m"),c=c("奇","妙","跟","难","以","言","喻"))
- #直接写testA写入test表中
- dbWriteTable(con,"test",testA,row.names=F)
- dbReadTable(con,"test")
- #追加写testB追加在test表后
- dbWriteTable(con,"test",testB,append=T,row.names=F)
- dbReadTable(con,"test")
- #覆盖写testB覆盖test表
- dbWriteTable(con,"test",testB,overwrite=T,row.names=F)
- dbReadTable(con,"test")
- #用SQL语句查询dbGetQuery()和dbSendQuery()两种方法
- dbGetQuery(con, "SELECT * FROM fruits limit 3")
- res <- dbSendQuery(con, "SELECT *FROM fruits")
- data <- dbFetch(res, n=2) #取前2条数据,n=-1时是获取所有数据
- data
- data <- dbFetch(res, n=-1) #取余下所有数据
- data
- dbClearResult(res)
- dbDisconnect(con) #断开连接
- #用SQL语句批量查询
- con <- dbConnect(MySQL(),host="host",dbname="test_dw",user="user",password="password",client.flag= CLIENT_MULTI_STATEMENTS) #client.flag设置这样支持批量查询
- dbSendQuery(con,'SET NAMES utf8')
- sql <- "SELECT * FROM fruits;SELECT * FROM test"
- res1 <- dbSendQuery(con,sql)
- dbFetch(res1, n = -1)
- if (dbMoreResults(con)) {
- res2 <- dbNextResult(con)
- dbFetch(res2, n = -1)
- }
- dbListResults(con)
- dbClearResult(res1)
- dbClearResult(res2)
- dbDisconnect(con)
参考:RMySQL数据库编程指南
有任何问题或建议欢迎提出!
转载请务必注明来源,谢谢!
相关文章
- MySQL Where 条件
- 【Mysql】数据库为啥会出现_encrypt和_warning成对的表
- mysql数据库主从复制部署笔记
- MySQL插入性能优化(转)
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
- 解决MYSQL ERROR 1045 (28000)问题
- 使用log4net无法将日志记录插入mysql数据库解决办法
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
- SQL注入之非MySQL数据库注入技巧
- Atitit 提升稳定性 数据库死锁 目录 1.1. 配置数据库死锁检测超时时间从默认50s到10s1 1.2. 调整隔离级别到read commit1 1.3. mysql数据库连接使用完毕
- Atitit postgresql data type 数据类型与mysql对应表 数据库常用数据类型 PostgreMysql 整数intgreterInt 小数numericFL
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
- 怎么恢复MySQL数据库
- 〖Python 数据库开发实战 - MySQL篇⑥〗- 利用 PyCharm 链接 MySQL 实现数据库可视化
- 〖Python 数据库开发实战 - MySQL篇⑩〗- MySQL 中不同的数据类型
- 〖Python 数据库开发实战 - MySQL篇㉔〗- 数据插入操作 - INSERT语句
- MYSQL导入数据报错|MYSQL导入超大文件报错|MYSQL导入大数据库报错:2006 - MySQL server has gone away
- 106.第十九章 MySQL数据库 -- MySQL 中间件代理服务器(十六)
- Mysql数据库的mysql Schema 究竟有哪些东西& 手工注入的基础要领
- JDBC连接MySQL数据库及演示样例
- MYSQL提权之反弹SHELL——数据库提权属于webshell到管理员的纵向提权,本质还是利用udf提权,无非是在mysql自定义函数中使用了反弹shell而已
- 数据结构与算法_48 _ B+树:MySQL数据库索引是如何实现的
- mysql 数据库 分表后 怎么进行分页查询?Mysql分库分表方案?
- golang操作mysql数据库(Go-SQL-Driver/MySQL)
- MySQL数据库篇之mysql的快速启动和停止
- MySQL数据库篇---对数据库,数据库中表,数据库中表的记录进行添修删查操作---保姆级教程
- MySQL数据库(三)-表行的语句使用
- mysql读写分离
- C++ 无法打开包括文件“mysql.h“: No such file or directory