R语言RODBC数据库操作
最近准备做一个股票的数据库,用R语言来获取数据,然后存在SQL Sever 2016 express 里面,虽然前面接触过一些操作,但是还是很不熟悉,现在数据已经能获取到了,是时候好好学习一下怎么用R来操作数据库.
- RODBC基础(翻译自RODBC文档)
- 连接数据库
###载入包
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数据库操作的更多相关文章
- C语言与数据库操作入门
https://blog.csdn.net/flyingqd/article/details/78763652 C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1 ...
- C语言与数据库操作入门(Win版)
C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1387 数据库,DataBase,学C语言的是不是想说,很想爱她却并不容易呢?不用着急,C语言也可以操作数据库的 ...
- [转]PHP语言的数据库操作函数的理解
就我接触到的R语言以及对数据库的操作来说,基本的操作其实也就是CRUD(Create, Read, Update, Delete). 习惯了之后,对PHP中的MYSQLI操作函数感觉很不适应,查询或者 ...
- R语言读入数据库的中英名词互译测试并计分脚本(考试用)
1. 分子生物学中英文.csv,输入文件,两列,以tab键分隔的txt文本,没有列名 2. 错误的名解.csv, 如果在测试中拼写错误,会写出到这个文件,可用这个容易犯错的名词进行新的测试 3. 注意 ...
- C语言ODBC数据库操作
今天我们来介绍一下C语言操作数据库的方法,这里我们使用的是ODBC方式.环境是WIN7+VC6.其他环境也差不多,具体情况具体分析. 首先是环境的配置以及数据源的添加.这里就不去解释了,相关资料网上有 ...
- 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 ...
- R语言︱基本函数、统计量、常用操作函数
先言:R语言常用界面操作 帮助:help(nnet) = ?nnet =??nnet 清除命令框中所有显示内容:Ctrl+L 清除R空间中内存变量:rm(list=ls()).gc() 获取或者设置当 ...
- R语言集合操作
熟练运用R语言的集合操作在很多时候可以省去for循环,从而提升数据处理效率.废话不多说,集合操作相对简单,贴一段代码就懂了! > A<-: > A [] > B<-,,) ...
- R连接mysql数据库方法详解
Warning messages: 1: In odbcDriverConnect("DSN=Rdata;UID=root") : [RODBC] ERROR: state IM0 ...
随机推荐
- jquery-1.4.4.min.js无法解析json中result.data问题
如下图该版本无法解析json数据 解决方法引用jquer.min.js,并且将$修改为jQuery
- restorecon【转】
本文转载自:https://blog.csdn.net/sinat_36888624/article/details/6076650 estorecon命令用来恢复SELinux文件属性即恢复文件的安 ...
- 论文笔记:ATOM: Accurate Tracking by Overlap Maximization
ATOM: Accurate Tracking by Overlap Maximization 2019-03-12 23:48:42 Paper:https://arxiv.org/pdf/18 ...
- 最大子段和的DP算法设计及其效率测试
表情包形象取自番剧<猫咪日常> 那我也整一个 曾几何时,笔者是个对算法这个概念漠不关心的人,由衷地感觉它就是一种和奥数一样华而不实的存在,即便不使用任何算法的思想我一样能写出能跑的程序 直 ...
- Maven下载与环境变量配置
前言: Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK.如果还未安装 JDK,可以参考Win10下JDK下载与环境变量配置. 项目 要求 JDK Maven 3.3+ ...
- OceanBase迁移服务:向分布式架构升级的直接路径
2019年1月4日,OceanBase迁移服务解决方案在ATEC城市峰会中正式发布.蚂蚁金服资深技术专家师文汇和技术专家韩谷悦共同分享了OceanBase迁移服务的重要特性和业务实践. 蚂蚁数据库架构 ...
- UI组件--element-ui--Table组件自定义合计行
需求: Element-ui的Table组件自带合计行, 但是需求需要在合计行的某些单元格有特别的样式以及事件, 没有研究出怎么在既有合计行上完成此需求, 于是利用其原本的一些属性完成自定义合计行. ...
- POJ 3616 奶牛挤奶
Milking Time 贝茜是一个勤劳的牛.事实上,她如此专注于最大化她的生产力,于是她决定安排下一个N(1≤N≤1,000,000)小时(方便地标记为0..N-1),以便她生产尽可能多的牛奶. ...
- linux批量配置ip
获取使用的网卡接口 ip a 2.查看系统版本 cat /etc/redhat-release 3.执行配置脚本 wget http://d.sshby.com/biaozhun.tar&& ...
- mybatis 动态添加表,查看表,添加数据
1.动态添加表 mapper int dropExistTable(@Param("tableName") String tableName);//自动创建数据表 映射文件 < ...