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:控制面板 管理工具 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

  • 連接數據庫
# 加載包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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章