最近准备做一个股票的数据库,用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)
###数据类型存入数据库后只有二进制值和字符串(日期将会作为字符串)

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

  • 和SQL server交互

SQl server的安装不在这里说,都是easy的事情,不过需要注意的是在现版本的sql server,需要自己再下载一个management studio(SSMS),至于为什么要装这个......还不是因为不熟悉......

要使用ODBC需要先配置ODBC数据源,方法是win+R搜索ODBC,选择用户dsn,点击添加,选择sql server,服务器不要使用下拉栏的,反正我的会报错,服务器名称去SSMS里面查看,然后复制过来就好。

测试是否可以连接:

这种就算是可以了。

这里我使用一个下载的股票数据来测试,如下:

###其中temptable是我自己创建的
###此函数是我获取股票数据的
stock_data_1 <- get_stock_data_today()
sqlSave(stock_dsn,stock_data_1)

能成功写入。

###增加一行
sqlSave(stock_dsn,stock_data_1[1,],"stock_data_1",append = TRUE)
###这里增加一行之后,rownames会有重复,再次读取的时候会报错
###但是像这样读取不会报错,却会多一列。
temp <- sqlFetch(stock_dsn,"stock_data_1",rownames = FALSE)
###删除表
sqlDrop(stock_dsn,"stock_data_1")

     目前这样可以完全满足我的需求了~~~nice

R语言RODBC数据库操作的更多相关文章

  1. C语言与数据库操作入门

    https://blog.csdn.net/flyingqd/article/details/78763652 C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1 ...

  2. C语言与数据库操作入门(Win版)

    C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1387 数据库,DataBase,学C语言的是不是想说,很想爱她却并不容易呢?不用着急,C语言也可以操作数据库的 ...

  3. [转]PHP语言的数据库操作函数的理解

    就我接触到的R语言以及对数据库的操作来说,基本的操作其实也就是CRUD(Create, Read, Update, Delete). 习惯了之后,对PHP中的MYSQLI操作函数感觉很不适应,查询或者 ...

  4. R语言读入数据库的中英名词互译测试并计分脚本(考试用)

    1. 分子生物学中英文.csv,输入文件,两列,以tab键分隔的txt文本,没有列名 2. 错误的名解.csv, 如果在测试中拼写错误,会写出到这个文件,可用这个容易犯错的名词进行新的测试 3. 注意 ...

  5. C语言ODBC数据库操作

    今天我们来介绍一下C语言操作数据库的方法,这里我们使用的是ODBC方式.环境是WIN7+VC6.其他环境也差不多,具体情况具体分析. 首先是环境的配置以及数据源的添加.这里就不去解释了,相关资料网上有 ...

  6. Go丨语言对数据库操作报错 panic: dial tcp 127.0.0.1:3306: connectex: No connection could be made because the target machine actively refused it.

    panic: dial tcp 127.0.0.1:3306: connectex: No connection could be made because the target machine ac ...

  7. R语言︱基本函数、统计量、常用操作函数

    先言:R语言常用界面操作 帮助:help(nnet) = ?nnet =??nnet 清除命令框中所有显示内容:Ctrl+L 清除R空间中内存变量:rm(list=ls()).gc() 获取或者设置当 ...

  8. R语言集合操作

    熟练运用R语言的集合操作在很多时候可以省去for循环,从而提升数据处理效率.废话不多说,集合操作相对简单,贴一段代码就懂了! > A<-: > A [] > B<-,,) ...

  9. R连接mysql数据库方法详解

    Warning messages: 1: In odbcDriverConnect("DSN=Rdata;UID=root") : [RODBC] ERROR: state IM0 ...

随机推荐

  1. linux系统ansible一键完成三大服务器基础配置(剧本)

    ansible自动化管理剧本方式一键完成三大服务器基础配置 环境准备:五台服务器:管理机m01:172.16.1.61,两台web服务器172.16.1.7,172.16.1.8,nfs存储服务器17 ...

  2. 【转载】系统吞吐量(TPS)、用户并发量、性能测试概念和公式

    系统吞度量要素 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高,外部系统接口.IO影响速度越慢,系统吞吐能力越低,反之越高 ...

  3. Docker 学习笔记(持久化数据的备份,还原)

    假如我们应用程序需要一台 mssql 数据库来持久化数据,我们将 mssql 数据库运行于 Docker 容器中: docker run -d -p 1433:1433 -e "ACCEPT ...

  4. 线程(Thread,ThreadPool)、Task、Parallel

    线程(Thread.ThreadPool) 线程的定义我想大家都有所了解,这里我就不再复述了.我这里主要介绍.NET Framework中的线程(Thread.ThreadPool). .NET Fr ...

  5. 使用loadrunner编写webservice接口请求

    1.使用工具: loadrunner12,本实例截图中都是loadrunner12工具 2.操作步骤: 1).新建脚本,选择Web Services协议: 2).选择工具栏: 3).点击Import, ...

  6. cryptoJS

    CryptoJS通俗的来讲是为了安全性,将前端传递到后端的参数加密 加密/解密方法(对称加密算法) AES 高级加密标准,是下一代的加密算法标准,速度快,安全级别高 DES 数据加密标准,适用于大量数 ...

  7. document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题

    转自http://wo13145219.iteye.com/blog/2001598 一.先遇到document.body.scrollTop值为0的问题 做页面的时候可能会用到位置固定的层,读取do ...

  8. what API can do

    APIs for manipulating documents loaded into the browser. The most obvious example is the DOM (Docume ...

  9. 43. Multiply Strings字符串相乘

    网址:https://leetcode.com/problems/multiply-strings/submissions/ 参考:https://leetcode.com/problems/mult ...

  10. javascript高级程序设计第3版——第5章 引用类型