在阅读之前我有必要进行申明,因为使用的是RMD文档,所以每次RENDER的时候都会读取数据库,所以结果显示不一样正常,有的也加了
overwrite和append选项。显示的结果不一定与实际读者操作的结果一致。
内容:
- 了解关系型数据库
- 使用SQL工具
使用数据库能够有效地应对超出计算机内存容量的数据存储问题,还可以根据用户提供的条件,对数据库中的数据进行查询,这也使在数据库中更新现有记录和插入新数据的操作变得简单。
操作关系型数据库
关系型数据库就是一个由表和表之间的关系组成的集合。数据库中的表和R中的数据框有相同地形式。表之间可以互相关联,让我们能够轻松合并多张表信息。
下面从最简单数据库开始,SQLite(http://sqlite.org/)是一个轻量级的数据库引擎。
在R中操作SQLite数据库需要用RSQLite扩展包。运行下面代码:
if(!require("RSQLite")) install.packages("RSQLite")
#> 载入需要的程辑包:RSQLite
创建SQLite数据库
现在在博客R目录下创建一个data目录,用来存储数据库:
if (!dir.exists("../../R/data")) dir.create("../../R/data")
接下来载入RSQLite包,提供数据库驱动SQLite()和数据库文件example.sqlite建立连接。如果目标文件不存在,数据库驱动会创建一个新的空文件,即空SQLite数据库:
library(RSQLite)
con = dbConnect(SQLite(), "../../R/data/example.sqlite")
数据库连接con是介于用户和系统中间的一层。我们可以创建一个连接,并且连接到关系型数据库,并通过这个连接实现查询、抽取以及更新数据。后续将一直使用这个连接,直到这个连接被关闭。
我们可以在关系数据库中创建新表,表看起来和R里的数据框是一样的。
下面创建一个数据框,并将它作为表插入数据库中。