R语言︱ 数据库SQL-R连接与SQL语句执行(RODBCsqldf包)

Posted 悟乙己

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言︱ 数据库SQL-R连接与SQL语句执行(RODBCsqldf包)相关的知识,希望对你有一定的参考价值。

要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗“贝壳”~

———————————————————————————


数据库是极其重要的R语言数据导入源数据之地,读入包有sqldf、RODBC等。跟SQL server相连有RODBC,跟mysql链接的有RMySQL。但是在R里面,回传文本会出现截断的情况,这一情况可把我弄得有点手足无措。



一、数据库读入——RODBC包

CRAN 里面的包 RODBC 提供了 ODBC的访问接口:

  • odbcConnect 或 odbcDriverConnect (在Windows图形化界面下,可以通过对话框选择数据库) 可以打开一个连接,返回一个用于随后数据库访问的控制(handle)。 打印一个连接会给出ODBC连接的一些细节,而调用 odbcGetInfo 会给出客户端和服务器的一些细节信息。
  • 在一个连接中的表的细节信息可以通过函数 sqlTables 获得。
  • 函数 sqlSave 会把 R 数据框复制到一个数据库的表中, 而函数 sqlFetch 会把一个数据库中的表拷贝到 一个 R 的数据框中。
  • 通过sqlQuery进行查询,返回的结果是 R 的数据框。(sqlCopy把一个 查询传给数据库,返回结果在数据库中以表的方式保存。) 一种比较好的控制方式是首先调用 odbcQuery, 然后 用 sqlGetResults 取得结果。后者可用于一个循环中 每次获得有限行,就如函数 sqlFetchMore 的功能。
  • 连接可以通过调用函数 close 或 odbcClose 来关闭。 没有 R 对象对应或不在 R 会话后面的连接也可以调用这两个函数来关闭, 但会有警告信息。