R语言RODBC数据库操作

  最近准备做一个股票的数据库,用R语言来获取数据,然后存在SQL Sever 2016 express 里面,虽然前面接触过一些操作,但是还是很不熟悉,现在数据已经能获取到了,是时候好好学习一下怎么用R来操作数据库.

  • RODBC基础(翻译自RODBC文档)
  1. 连接数据库
###载入包
library(RODBC)
###新建一个连接
ch <- odbcConnect("some dsn")
###关闭连接
colse(ch)
###或者
odbcClose(ch)
###如果有密码/大多数情况都有
ch <- odbcConnect("some_dsn", uid = "user", pwd = "****")

  2. 从数据库读取文件

###获取可以访问的表
sqlTables(ch)
###更加精确的查询
sqlTables(ch, tableType = "TABLE") 
sqlTables(ch, schema = "some pattern")
sqlTables(ch, tableName = "some pattern")
###这里的schema百度说等价于用户名,我对数据库不怎么了解
###要获取某个表的数据
res <- sqlFetch(ch, "table name")
###限制最大行数
res <- sqlFetch(ch, "table name", max = m)
res <- sqlFetchMore(ch, "table name", max = m) 
###细节有机会再看了,这里返回的是一个data.frame
###提取列
sqlColumns(ch, "USArrests")
###使用SQL语句筛选出需要返回的数据
sqlQuery(sh, paste("SELECT State, Murder FROM USArrests", 
            + "WHERE Rape > 30 ORDER BY Murder"))
###SQL语句的意义另作讨论,不在本文范畴内,需要指出每个DBMS的SQL语句可能不一样

    表名字

  文中说DBMS允许的表名称可能不一样,有的表名允许有空格,小数点等,像这种数据库需要在连接的时候指定一下参数,具体的看连接的函数,命名的时候还是不要给自己找麻烦的好.

3.向数据库写入

###删除表,可能存在的
sqlDrop(ch, "table name", errors = FALSE)
###创建表,默认使用的是数据框的名字,还有一个函数sqlUpdate
sqlSave(ch, some data frame)
###数据类型存入数据库后只有二进制值和字符串(日期将会作为字符串)

  讲道理,会这些应该就能满足我的需要了,虽然这里面肯定还有很多坑,只有实践才会知道了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/NEFPHYS/p/nef20180608.html
今日推荐