1、odbcConnect的使用
在加载RODBC包之前,首先得设置数据源,设置过程如下:
(1)打开控制面板——选择系统和安全
(2)选择管理工具
(3)选择ODBC数据源(64位)
(4)打开之后,选择“用户DSN”项,然后点击“添加”按钮。
(5)点击添加之后,弹出如下界面
(6)选择安装数据源的驱动程序,选择“MySQL ODBC 8.0 Unicode Driver”;【这必须是本电脑上已安装MySQL8.0软件】点击完成按钮
(7)在上面窗口中输入如下信息:
(8)添加完成之后,有如下结果
(9) 测试连接
首先打开“数据源”选择数据库:
然后打开RGui或RStudio软件,在命令行中输入如下代码:
> library(RODBC)
> con<-odbcConnect("mysqlODBC_data", uid="root",pwd="123456");
> sqlTables(con)
> data<-sqlFetch(con,"student");
> print(data);
代码解释:
> library(RODBC) #library和require都可以载入包,在一个函数中,如果一个包不存在,执行到library将会停止执行。
>con<-odbcConnect("mysqlODBC_data", uid="root",pwd="123456"); # 创建链接,mysqlODBC_data为本人数据源名字,uid为数据库用户名,pwd为密码。
> sqlTables(cha) #查看数据中的表
#输出结果如下
TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS
1 d_sample course TABLE
2 d_sample sc TABLE
3 d_sample student TABLE
> data<-sqlFetch(cha,"student") # 查看表的内容,存到数据框里。student为表名。
> print(data) #显示表中数据,这里只能显示英文的数据,不能显示中文。
如果我们的结果显示数据库“d_sample”中的表都显示出来了,证明我们的RODBC包已添加成功。
(10)输出数据表的结果出现乱码,如何解决呢?
测试成功后,但是不能显示中文,解决方法如下:
乱码解决: 在你创建好的数据源界面,点击配置,弹出对话框左下角点击details
在Character set中选utf8,结果如下:
结果是可以显示中文了,但是不是简体。下面我们修改字符集为gbk看看,即在Character set中选gbk。结果如下图所示??
与obdcConnect对应的是关闭连接:
close(con)
# or if you prefer
odbcClose(con)