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

时间:2022-04-17 13:14:03

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


1、下载(mysql-connector-odbc-5.3.4-winx64.msi)
下载地址:http://dev.mysql.com/downloads/connector/odbc
R语言连接Mysql数据库的步骤及简单使用(学习笔记)


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。

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


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;

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

select * from iris;

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


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

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


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