R语言连接Mysql数据库的步骤及简单使用(学习笔记)

实验环境:win8.1-64操作系统,MySQL5.6


1、下载(mysql-connector-odbc-5.3.4-winx64.msi)
下载地址:http://dev.mysql.com/downloads/connector/odbc
这里写图片描述


2、安装mysql-connector-odbc-5.3.4-winx64.msi(安装按照默认就好了)


3、配置datasource

windows:控制面板 ⇒ \Rightarrow 管理工具 ⇒ \Rightarrow ODBC 数据源(64 位) ⇒ \Rightarrow 添加 ⇒ \Rightarrow 选中mysql ODBC driver一项

  • data source name 一项填入你要使用的名字,自己随便命名,例如:MySQL;
  • description一项随意填写,例如MyWorld;
  • TCP/IP Server 填写本机服务器IP,一般为:127.0.0.1;
  • user 填写你的mysql用户名;
  • password 填写你的mysql密码;
  • 然后数据库里会出现你的mysql里的所有数据库(我这里选world),选择一个数据库,OK。

这里写图片描述


4、使用R连接MySQL

  • 连接数据库
# 加载包RODBC
library(RODBC)

# 连接MySQL数据库
channel <- odbcConnect("MySQL", uid="root", pwd="root")


  • 查看数据world中的表
> sqlTables(channel)
  TABLE_CAT TABLE_SCHEM      TABLE_NAME TABLE_TYPE REMARKS
1     world                        city      TABLE        
2     world                     country      TABLE        
3     world             countrylanguage      TABLE     

  • 查看表city的内容,存到数据框data里
> data<-sqlFetch(channel,"city")
> head(data)
  ID           Name CountryCode      District Population
1  1          Kabul         AFG         Kabol    1780000
2  2       Qandahar         AFG      Qandahar     237500
3  3          Herat         AFG         Herat     186800
4  4 Mazar-e-Sharif         AFG         Balkh     127800
5  5      Amsterdam         NLD Noord-Holland     731200
6  6      Rotterdam         NLD  Zuid-Holland     593321

  • 使用SQL语句查询,查询Population大于等于500万的人名,并按ID降序排序
> sqlQuery(channel,"select ID,Name,Population from city where Population >= 5000000 order by id desc")
     ID                Name Population
1  3793            New York    8008278
2  3580              Moscow    8389200
3  3357            Istanbul    8787958
4  3320             Bangkok    6320174
5  2890                Lima    6464693
6  2823              Lahore    5063499
7  2822             Karachi    9269265
8  2515   Ciudad de M??xico    8591309
9  2331               Seoul    9981619
10 2298            Kinshasa    5064000
11 2257 Santaf?? de Bogot??    6260862
12 1893             Tianjin    5286800
13 1892           Chongqing    6351600
14 1891              Peking    7472000
15 1890            Shanghai    9696300
16 1532               Tokyo    7980230
17 1380             Teheran    6758845
18 1025               Delhi    7206704
19 1024     Mumbai (Bombay)   10500000
20  939             Jakarta    9604900
21  608               Cairo    6789479
22  456              London    7285000
23  207      Rio de Janeiro    5598953
24  206          S??o Paulo    9968485

  • 将数据框iris中的数据保存到数据库的表中
> head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
# 由于数据框没有行名,所以保存到数据库中时需要指定一个行名(比如这里是“id”)
> sqlSave(channel, iris, rownames = "id", addPK = TRUE)

打开cmd进入到mysql,使用语句

use world
show tables;

这里写图片描述

select * from iris;

这里写图片描述


  • 删除数据库中的表iris
sqlDrop(channel,"iris")

这里写图片描述


  • 关闭数据库的连接
 odbcClose(channel)

欢迎访问我的个人站点:http://bgods.cn/

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值