学习笔记
PS:写这个Blog的初衷是,心血来潮考古自己的Blog,看到3年前写的同一主题Blog,差点气到吐血,就重新写一遍了,顺便加一点R语言读取数据的其他方式。


R语言之连接mysql数据库

从mysql中读取数据

在用R连接mysql之前,我添加一个数据源:

注意,添加mysql数据源时,要填写数据源名称,用户名,密码和要使用的数据库

如果不添加数据源,可能会报以下错误:

Warning messages:
1: In RODBC::odbcDriverConnect("DSN=mysql;UID=root;PWD=19970928") :[RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
2: In RODBC::odbcDriverConnect("DSN=mysql;UID=root;PWD=19970928") :ODBC connection failed

如果没有指定要使用的数据库,将无法进行查询/添加/删除等一系列操作(可能通过别的方法可以进行这些操作,但是现在我不知道,所以假装无法操作),因为R不知道操纵哪个数据库,在用sqlTables方法时,可能会出现以下情况:

[1] TABLE_CAT   TABLE_SCHEM TABLE_NAME  TABLE_TYPE  REMARKS
<0 行> (或0-长度的row.names)

没错,啥表都查不到,这不是因为数据库里真的没有表,而是因为没有指定要使用的数据库!

好做完这一切后,开始我们的实验。

  1. 导包,并创建数据库连接
library(RODBC)
#建立数据库连接
channel <- odbcConnect("R4mysql", uid="root", pwd="19970928")
#要连接的数据源名称为R4mysql,用户名urrot, 密码19970928
  1. 显示数据库中的表
#显示stu数据库中的表
sqlTables(channel)

控制台输出:

  TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS
1       stu                 images      TABLE
2       stu               interest      TABLE
3       stu             my_class_1      TABLE
4       stu             test_table      TABLE
  1. 获取数据库中的表
#将数据库中的interest表读到数据框中
df <- sqlFetch(channel,"interest")
print(df)

控制台输出:

  id  name hobby grade   price      comment
1  2 Bunny  sing     B 8888.88     小黄唧唧
2  3   Ada  draw     A 9999.99 小黄的铲屎官
3  6   Bai dance     A 8769.43     jijijiji
  1. 查询及插入记录
#查询语句
query = 'SELECT * FROM interest WHERE price > 9000'
#向数据库发送查询结果
my_select <- sqlQuery(channel,query)
print(my_select)#添加记录语句
query = 'insert into interest values(8, "Add", "sing", "B", 3456.32, "不想说话")'
#向数据库添加记录
sqlQuery(channel,query)

控制台输出:

  id name hobby grade   price      comment
1  3  Ada  draw     A 9999.99 小黄的铲屎官

查看mysql数据库中interest数据表的情况:

# id, name, hobby, grade, price, comment
'2', 'Bunny', 'sing', 'B', '8888.88', '小黄唧唧'
'3', 'Ada', 'draw', 'A', '9999.99', '小黄的铲屎官'
'6', 'Bai', 'dance', 'A', '8769.43', 'jijijiji'
'8', 'Add', 'sing', 'B', '3456.32', '不想说话'

记录成功添加!

  1. 写入/更新一个数据表
#将数据框写入或更新(append=TRUE)到数据库的某个表中
r_df <- data.frame(x  = seq(0, 8, 2), y = letters[1:5])
sqlSave(channel,  # 创建的数据连接r_df, #R数据框名称tablename = "r_sql_data", # 数据库表名rownames = FALSE, # 不存储数据框的行名append = F) r_df <- data.frame(x  = seq(0, 8, 2), y = letters[1:5])
sqlSave(channel,  # 创建的数据连接r_df, #R数据框名称tablename = "r_sql_data2", # 数据库表名rownames = T, # 存储数据框的行名append = F)

查看mysql数据库中,表r_sql_data和表r_sql_data2是否被写入:

# Tables_in_stu
'images'
'interest'
'my_class_1'
'r_sql_data'
'r_sql_data2'
'test_table'

嗯!成功写入了。

再看看分别看看两个数据表中的数据。

表r_sql_data:

# x, y
'0', 'a'
'2', 'b'
'4', 'c'
'6', 'd'
'8', 'e'

表r_sql_data2:

# rownames, x, y
'1', '0', 'a'
'2', '2', 'b'
'3', '4', 'c'
'4', '6', 'd'
'5', '8', 'e'

可以看到,r_sql_data2表相对于r_sql_data表多了一个行名,这是因为我们在构建r_sql_data2时,将参数rownames设置为TRUE。

  1. 删除数据库中的表
#删除数据库中的r_sql_data表和r_sql_data2表
sqlDrop(channel,'r_sql_data')
sqlDrop(channel,'r_sql_data2')
  1. 关闭连接
#关闭连接
close(channel)

其他导入方式

##直接从剪切板读取文件
r <- read.table("clipboard",head = TRUE)##读取csv、txt文件
r <- read.csv("shuju.csv", head = TRUE)
#设置stringsAsFactors = F 可以不让字符串变成因子
r <- read.table("shuju.txt", head = TRUE)##读取xlsx文件
library(readxl)
r <- read_excel("shuju.xlsx", sheet = 1)##以及各种其他文件
library(foreign)
#STATA
r <- read.dta("shuju.dta")
#SAS
r <- read.xport('shuju.xpt')
#SPSS
r <- read.spss('shuju.sav')

这里就不对其他导入方式的语法进行详述了。

R语言之连接mysql数据库相关推荐

  1. 【R语言数据科学】(十一):R语言如何连接mysql数据库?一起来看看吧

    R语言数据分析

  2. C语言ODBC连接MySQL数据库制作简易用户登录系统

    1.代码如下: #include "stdafx.h" #include <windows.h> #include <windowsx.h> #includ ...

  3. linux mysql c语言 api_linux连接MySQL数据库(C语言 API 分析,动态插入修改数据)

    #include #include #include #include #include #include #define DBHOST "localhost" #define D ...

  4. R语言 : RJDBC 连接 h2数据库,绘基金净值图

    H2database : 命令行: 类似 isql java -cp /H2/bin/h2-1.3.jar org.h2.tools.Shell CREATE TABLE JJJZ ; insert ...

  5. mysql用c语言连接驱动程序,C语言连接MySql数据库

    操作系统:Windows7(32位) 编译软件:Code::Blocks 10.05 数 据 库:mysql-5.1.62-win32 数据库内的数据: 测试代码: #include #include ...

  6. php连接数据库语言,PHP语言连接MYSQL数据库实例代码

    本文主要向大家介绍了PHP语言连接MYSQL数据库实例代码,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 现在做的项目需要php连接mysql数据库,虽然之前学过,但是现在基本上都给忘 ...

  7. C#语言连接Mysql数据库实现增删改查

    C#语言连接Mysql数据库实现增删改查 实现效果如图 在此之前先下载一个mysql.dll 库 如下 链接:https://pan.baidu.com/s/17Nv_1W3KbXfWgdOvWf_S ...

  8. C语言连接mysql数据库(一)

    编程 IDE:Visual Studio (其他的本人没有试过 QWQ) 前提:已经安装 mysql,并且成功连接 23/5/24 更新:一个基于 c 语言.mysql 的小型示例学生管理系统 资源路 ...

  9. 使用Java语言开发工具idea连接MySQL数据库的基本步骤及操作实例

    Java连接MySQL数据库并进行一些基本操作以及导入jar包的两种方式 其实,任何开发工具连接数据库无非就是三步:1.安装驱动.2.加载驱动,创建连接对象.3.创建对象操作游标.4.游标调用函数完成 ...

最新文章

  1. VC++ GetSafeHwnd()和GetSafeHandle()
  2. linux在shell中获取时间
  3. Java工具类——UUIDUtils
  4. oracle11g-expdp-impdp步骤
  5. 重磅!PyTorch 中文手册已开源!理论、实践、应用都有了!
  6. Java 接口和抽象类的区别
  7. log4j配置文件及nutch中的日志配置
  8. 一个简单的PHP购物车系统
  9. 应届生想要获取web前端开发岗位?这份技能攻略,面试攻略别错过
  10. html颜色代码生成器,在线取色配色工具,CSS3渐变色代码生成器-易玩稀有
  11. Qt For Android 获取手机屏幕大小
  12. 电阻触摸屏和电容触摸屏你更喜欢哪一个?
  13. 本科生计算机核心期刊论文,计算机本科生学位论文参考文献 计算机本科生核心期刊参考文献哪里找...
  14. word2019如何删除段落文字带颜色的背景
  15. 彭佳慧 - 走在红毯那一天
  16. manjaro i3wm社区版配置记录
  17. 普通用户使用su无法切到root用户的解决方法
  18. android实现上班打卡记录日历查看功能
  19. 智慧星杀毒软件:炒作?黑幕?其它?
  20. linux怎么彻底清除命令历史,历史命令保存文件位置在哪儿?

热门文章

  1. MobileNet论文阅读笔记
  2. ## 7.3 奇异值分解的几何意义
  3. 5.11 加权Gram-Schmidt 分解
  4. ubuntu16.04安装python2.7_如何在Ubuntu16.04 LTS上为python(2.7,3.5,3.6)设置...
  5. 课程第一天内容《基础交换 一 》
  6. 数据结构 - 树形选择排序 (tree selection sort) 具体解释 及 代码(C++)
  7. canvas粒子动画
  8. Educational Codeforces Round 9 A. Grandma Laura and Apples 水题
  9. 第四-generation音频:互联网智能声音会火
  10. Mysql基本用法-left join、right join、 inner join、子查询和join-02