【R语言数据科学】(十一):R语言如何连接mysql数据库?一起来看看吧
R语言数据分析
- 🌸个人主页:JoJo的数据分析历险记
- 📝个人介绍:小编大四统计在读,目前保研到统计学top3高校继续攻读统计研究生
- 💌如果文章对你有帮助,欢迎关注、点赞、收藏、订阅专栏
本系列主要介绍R语言在数据分析领域的应用包括:
R语言编程基础、R语言可视化、R语言进行数据操作、R语言建模、R语言机器学习算法实现、R语言统计理论方法实现。
本系列会完成下去,请大家多多关注点赞支持,一起学习~
参考资料:
Data Analysis and Prediction Algorithms with R
☘️R语言连接mysql
很多时候,我们的数据保存在sql数据库中,本文介绍一下如何使用R语言来连接mysql数据库,首先安装RMySQL
包
# 导入相关库
library(RMySQL)
🍀1.连接数据库
在RMySQL中,我们使用dbConnect()函数连接mysql数据库,具体语法如下
# 连接数据库
dbconn<-dbConnect(
MySQL(),
host="localhost",
dbname="test",
user="root",
password="密码",
port=3306)
现在我们导入了指定的数据库,我们使用dbListTables()
可以数据库中有哪些表
dbListTables(dbconn)
- 'depart'
- 'dept_emp'
- 'emp'
- 'emps'
- 'goods'
- 'salaries'
- 'sales'
- 'students'
- 'test_12'
🍁2.读取数据库数据
使用dbSendQuery()函数可以读取mysql数据库里面的内容,相当于是执行SQL代码,再使用fetch()函数将结果保存在数据框中,具体用法如下
假设我们要读取emp表中所有的信息
# 返回查询结果
result <- dbSendQuery(dbconn, "select * from emp")
# 返回前n行数据保存在数据框中
df <- fetch(result, n = 5)
df
emp_id | emp_name | salary | birthday | telephone | depart_id_fk |
---|---|---|---|---|---|
<int> | <chr> | <int> | <chr> | <chr> | <int> |
1 | Zenobia | 1848 | 1994-10-08 | 18811769371 | 1 |
2 | Yvette | 2579 | 1992-06-11 | 18811769325 | 2 |
3 | Xaviera | 4439 | 1986-09-21 | NA | 3 |
4 | Winni | 2546 | 1975-09-29 | 18811769305 | 4 |
6 | Vivien | 5593 | 1980-07-19 | 18811769315 | 6 |
当n=-1时,则返回返回所有的数据
df <- fetch(result,n=-1)
dim(df)
- 227
- 6
🍂3. 进行条件查询
例如我们要查询emp表中工资高于5000的所有人员信息,按工资升序排序,并只显示前十个人员信息
result <- dbSendQuery(dbconn, "select * from emp where salary > 5000 order by salary limit 10")
df <- fetch(result,n=-1)
df
emp_id | emp_name | salary | birthday | telephone | depart_id_fk |
---|---|---|---|---|---|
<int> | <chr> | <int> | <chr> | <chr> | <int> |
151 | Ophelia | 5050 | 1984-04-24 | 18811768591 | 9 |
34 | Ophelia | 5050 | 1984-04-24 | 18811768591 | 9 |
6 | Vivien | 5593 | 1980-07-19 | 18811769315 | 6 |
123 | Vivien | 5593 | 1980-07-19 | 18811769315 | 6 |
230 | Antonia | 5712 | 1982-03-22 | 15001012122 | 17 |
113 | Antonia | 5712 | 1982-03-22 | 15001012122 | 17 |
97 | Constance | 5712 | 1985-02-05 | 13701322150 | 23 |
214 | Constance | 5712 | 1985-02-05 | 13701322150 | 23 |
156 | Novia | 5997 | 1980-12-23 | 18701373066 | 1 |
39 | Novia | 5997 | 1980-12-23 | 18701373066 | 1 |
还有其他的mysql操作都可以在dbSendQuery中实现
🍃4.断开连接
dbDisconnect(dbconn)
Warning message:
"Closing open result sets"
TRUE
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY