通过SQL 语句对数据库进行操作。R 对于基于SQL 语言的关系型数据库有良好的支持,这些数据库既有商业数据库Oracle、Microsoft SQL Server、IBM DB2 等,也包含在GNU General Public License (GPL) 下发布的MySQL 等开源数据库,之所以能够读取这些数据库中的数据,是因为有与之相对应的包,R中安装这些包后,通过R就可以对这些数据库进行读取了。
RMySQL 5 包中提供了到MySQL 数据库的接口;RODBC 包提供了更为广泛数据库接口的解
决方案| 支持所有标准ODBC 接口的数据库。通过这种方式,相同的R 代码可以方便地应用于
不同类型的数据库。
library (RODBC)
ch <- odbcConnect (“stocksDSN” , uid = “myuser” ,pwd = “mypassword”)
stocks <- sqlQuery ( ch , “select
odbcClose ( ch )
经测试,Windows 平台上的Microsoft SQL Server、Access、Oracle、MySQL、PostgreSQL,和
Linux 平台上的MySQL、Oracle、PostgreSQL、SQLite 都有良好的应用案例(详细参考R-data)。
例:
library(RODBC) ch <- odbcConnect ("cubead_BI" , uid = "cubead_bi" ,pwd = "cubead_bi") stocks <-sqlQuery (ch, "select "账户" from baogao")
要想读取Mysql数据库,首先要安装RMySQL包,在R的工作区操作如下:
#安装R包install.packages(“RMySQL”)#载入RMySQLlibrary(RMySQL)然后,mydb=dbConnect(RMySQL(),user=’root’,password=”,dbname=’sample_table’,host=’localhost’)还可以列出数据表及其结构dbListTable(mydb)返回sample_table表下面的字段的列表,可以使用如下命令:dbListFields(mydb,’sample_table’)接下来,可以导入数据进入R中ra=dbSendQuery(mydb,”select * from sample_table”)dataset=fetch(ra)当然,还可以进行数据操纵,运行如下命令:dbWriteTable(mydb,name=’mysql_table_name’,value=data.frame.name)要向已经存在的MySQL数据表中插入R矩阵数据,使用如下命令:#首先,定义矩阵datamatrix<- matrix(1:9,3,3)#定义用于插入数据的查询query=paste(“insert into names values (”,datamatrix[1,1],”,”,datamatrix[1,2],”)”)#提交已定义查询的命令dbGetQuery(con,query)也可以删除一张不再需要的MySQL数据表,可以执行命令:dbSendQuery(mydb,’drop table if exists mysql_some_table’)
未经允许不得转载:哈勃私语 » R 可以操作mysql数据库数据
本文共1369个字 创建时间:2015年12月14日1:22