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

来源:互联网 发布:玛嘉.莎塔碧 知乎 编辑:程序博客网 时间:2024/06/06 00:59

实验环境: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:控制面板管理工具ODBC 数据源(64 位)添加选中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

  • 连接数据库
# 加载包RODBClibrary(RODBC)# 连接MySQL数据库channel <- odbcConnect("MySQL", uid="root", pwd="root")

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

  • 查看表city的内容,存到数据框data里
> data<-sqlFetch(channel,"city")> head(data)  ID           Name CountryCode      District Population1  1          Kabul         AFG         Kabol    17800002  2       Qandahar         AFG      Qandahar     2375003  3          Herat         AFG         Herat     1868004  4 Mazar-e-Sharif         AFG         Balkh     1278005  5      Amsterdam         NLD Noord-Holland     7312006  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 Population1  3793            New York    80082782  3580              Moscow    83892003  3357            Istanbul    87879584  3320             Bangkok    63201745  2890                Lima    64646936  2823              Lahore    50634997  2822             Karachi    92692658  2515   Ciudad de M??xico    85913099  2331               Seoul    998161910 2298            Kinshasa    506400011 2257 Santaf?? de Bogot??    626086212 1893             Tianjin    528680013 1892           Chongqing    635160014 1891              Peking    747200015 1890            Shanghai    969630016 1532               Tokyo    798023017 1380             Teheran    675884518 1025               Delhi    720670419 1024     Mumbai (Bombay)   1050000020  939             Jakarta    960490021  608               Cairo    678947922  456              London    728500023  207      Rio de Janeiro    559895324  206          S??o Paulo    9968485

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

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

use worldshow tables;

这里写图片描述

select * from iris;

这里写图片描述


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

这里写图片描述


  • 关闭数据库的连接
 odbcClose(channel)
0 0
原创粉丝点击