linux r语言 mysql_R语言-连接MySQL数据库方法

1、使用R数据库接口

连接MySQL,使用RMySQL包,使用前RMySQL包要先安装。

library(RMySQL)

连接方式有2种:

(1)使用dbConnect

conn

数据操作方法:

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

dbReadTable(conn, "tablename")  #读表

dbDisconnect(conn) #关闭连接

(2)使用sqldf包

首先要安装sqldf包,其次调用:

>library(sqldf)

> sqldf("select * from t_data",dbname="test",drv="MySQL",user="root",password="",host="127.0.0.1",port=3306)

连接后,SQL查询语句后面的参数均可省略,例如:

> sqldf("select * from t_data limit 0,10")

2、使用ODBC连接

在Windows下配置ODBC(开放数据库连接),具体步骤如下:

(1)R下载RODBC包,安装好。

(2)在http://dev.mysql.com/downloads/connector/odbc下载mySQL ODBC,安装好。

(3)Windows:控制面板->管理工具->数据源(ODBC)->双击->添加->选中mysqlODBC driver一项

填写:data source name 一项填入你要使用的名字,自己随便命名,例如:mysql_data;

description一项随意填写,例如mydata

TCP/IP Server 填写本机服务器IP,一般为:127.0.0.1

user 填写你的mysql用户名

password 填写你的mysql密码

然后数据库里会出现你的mysql里的所有数据库,选择一个数据库。

确定。

(4)打开R的界面调用数据库:

library(RODBC);

channel

sqlTables(channel);#查看数据中的表

data

参考文章:

1、R语言连接Mysql数据库的步骤及简单使用mysql数据库中的数据(学习笔记).http://www.dataguru.cn/thread-289411-1-1.html

2、R语言连接mySQL数据库步骤. http://blog.sina.com.cn/s/blog_ab3fbf1b0101komj.html

3、R连接MySQL数据库方法备忘. http://www.r-bloggers.com/lang/chinese/1247

以下的实验环境是在windows7-32操作系统下进行

1、下载(mySQL-connector-odbc-5.3.2-win32.msi)

下载地址:http://dev.mysql.com/downloads/connector/odbc

如果下载不了的同学可以下直使用我的附件

08bd09527e431aae5c512a2d38fc1a86.gif 

840fbd9b39c97a88890258d647d26b7d.png 

f1823692f8ea3e89bf8f6cbb2239cd98.png

7f2e9995295cc1d094a37c9e3784aea0.png

以上Datasource配置成功

4、R软件访问mysql数据库

(1)安装及加载RODBC

install.packages("RODBC")

library(RODBC)

复制代码

(2)与mysql建立连接

channel=odbcConnect("mysqlodbc", uid="root", pwd="123456")

复制代码

(3)查询该数据库下都有哪些数据库表

> sqlTables(channel)

TABLE_CAT TABLE_SCHEM   TABLE_NAME TABLE_TYPE REMARKS

1      test                       aa      TABLE

2      test              first_table      TABLE

3      test             second_table      TABLE

4      test                 students      TABLE

复制代码

(4)查询某个表中的数据返回给数据框

> students=sqlFetch(channel,"students")

> students

id     name age address        tel score

1  101 潘国远01  90    北京 2147483647  99.9

2  102 潘国远02  90    北京 2147483647  99.9

3  103 潘国远03  90    北京 2147483647  99.9

4  104 潘国远04  90    北京 2147483647  99.9

5  105 潘国远05  90    北京 2147483647  99.9

6  106 潘国远06  90    北京 2147483647  99.9

7  107 潘国远07  90    北京 2147483647  99.9

8  108 潘国远08  90    北京 2147483647  99.9

9  109 潘国远09  90    北京 2147483647  99.9

10 110 潘国远10  90    北京 2147483647  99.9

复制代码

(5)条件查询

> sqlQuery(channel,"select name,age,address,score from students where id < 105 order by id desc")

name age address score

1 潘国远04  90    北京  99.9

2 潘国远03  90    北京  99.9

3 潘国远02  90    北京  99.9

4 潘国远01  90    北京  99.9

复制代码

(6)将数据框中的数据保存到数据库表中

0b1682bb0eef803c722f4cd932ba16da.png 

数据框的首列没有列名,所以在保存之前需要指定列名

sqlSave(channel, USArrests, rownames = "state", addPK = TRUE)

复制代码

560a1cda80752d2c2df49c4789c28990.png 

从以上可以看出,数据框能正确的保存到mysql数据库中去了

(7)在R软件将刚才添加到mysql数据库中的表删除掉

sqlDrop(channel,"usarrests")

复制代码

(8)关闭连接资源

odbcClose(channel)

复制代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值