这个博客园好奇怪,怎么点开主页先出现的不是博客文章,而是随笔呢?
以前没碰过R,最近开始学习上R语言,一起加油吧^_^
---------------------------------
一、我们先连接上自己的MySQL数据库,代码如下
install.packages('RMySQL')
library(RMySQL)
con<-dbConnect(MySQL(),host='127.0.0.1',port=49293,dbname='anne',user='root',password= 'woshianne123.')
这里con的内容按照下面的资料填写,如果port为默认的3306的话,其实是可以不用写的,但如果port不是默认的话,就一定要写上,否则会出现连接错误
我在连接MySQL时,出现了很多错误,错误语句是:
Error in .local(drv, ...) :
Failed to connect to database: Error: Access denied for user 'root'@'localhost' (using password: YES)
原因大概如下
①port非默认值,而是其他值,这时候需要在host后面写上port的值,不用单引号。
②密码错误,也会出现连接错误的情况。如果出现情况错误确定不是①的话,且对密码不清楚的话,可以在环境变量里配置MySQL,然后在CMD窗口里输入
mysql -hlocalhost -uroot -p+上你认为的密码,如:mysql -hlocalhost -uroot -pwoshianne123,应该会出现错误或正确的提示。
其他情况的话可以参考下网上的内容,我暂时没遇到。
二、读取MySQL的内容
#查看databbasbase
summary(con) #基本信息梗概
dbGetInfo(con) #数据库的基本信息
dbListTables(con) #查看数据库里的表格
#读取数据库
dbSendQuery(con,'SET NAMES gbk') #去除中文乱码影响,还是乱码的话用utf8
dbReadTable(con,'student')
#用SQL语句查询dbGetQuery()和dbSendQuery()两种方法
①
dbGetQuery(con,'select * from score limit 3') #会出现相应结果
②
res<-dbSendQuery(con,"SELECT * FROM score")
dbFetch(res, n=2) #取前2条数据,n=-1时是获取所有数据
data <- dbFetch(res, n=-1) #取余下所有数据
data
dbClearResult(res) #查询完一定要执行,否则可能会出现要你close resultset
# 用SQL语句批量查询 ,client.flag设置这样支持批量查询
con<-dbConnect(MySQL(),host='127.0.0.1',port=49293,dbname='anne',user='root',password= 'woshianne123.',client.flag= CLIENT_MULTI_STATEMENTS)
dbSendQuery(con,'SET NAMES gbk')
dbReadTable(con,'student')
dbReadTable(con,'score')
sql<-'select * from student;select * from score'
res1<-dbSendQuery(con,sql)
dbFetch(res1,n=2)
dbFetch(res1,n=-1)