R语言 如何把整个数据帧写入MySQL表中
在这篇文章中,我们将学习如何在R编程语言中把整个数据框写进MySQL表。
为了完成这项任务,我们需要一些基本的要求,这些要求列举如下。
- 安装MySQL
- 安装R工作室
- 具有SQL查询的基本知识。
使用SQL查询创建一个数据库 “gfg_database”,并在这个数据库中创建一个有两列 “主题 “和 “分数 “的样本表,我们将在其中使用R编程语言存储数据。
代码中使用的表
表的结构
什么是RMySQL
为了在R环境中处理MySQL表,应该在环境中安装RMySQL包。该包作为R语言的数据库接口和MySQL驱动,下面的命令用于在R语言中安装RMySQL包。
install.packages("RMySQL")
dbConnect()方法
可以从Rstudio中建立一个本地连接到MYSQL服务器。在启动脚本之前,服务器应该被启动。dbConnect()方法用于在继续进行的R会话和MySQL数据库之间建立一个连接。它需要参数,如主机名、密码等来建立连接。
语法: dbConnect(drv, …)
参数 :
- drv – 现有的DBI连接对象(例如 ‘ dbConnect(RMySQL::MySQL()) ‘ )
- ... – 这些包括’user’, ‘password’, ‘dbname’, ‘host’, ‘port’,等等。
创建数据框架
可以使用 data.frame() 方法创建一个数据框架,在该方法中我们指定我们希望写入MySQL表的表的内容。 然后通过使用我们希望放入数据的表名来生成SQL查询。数据框的值被用作放入MySQL表的值。
发送数据到MySQL表
一个带有动态数据的SQL查询是由 paste0() 方法创建的,它从列中获取字符串值并将其输入到数据框中。然后使用 dbSendquery() 方法将该查询发送到数据库中。
最后的方法dbSendQuery()方法然后被用来在R环境中执行MySQL查询。这个方法负责在数据库引擎上调用指定的SQL查询。
dbSendQuery(connection , sql-query)
在下面的代码片段中,首先使用 dbConnect() 方法建立一个连接,该方法分别接受用户名和密码作为输入。然后使用 data.frame() 方法创建一个包含数值的假数据框,该数据框有两列,分别是主题和分数。
# installing the required libraries
library("RMySQL")
# setting up a db connection
connection <- dbConnect(MySQL(), user = 'root',
password = '12345', host = 'localhost',
dbname = 'gfg_database')
# creating a data frame
data_frame <- data.frame(subject = c("Maths",
"Science","CS"), marks = c(22,38,76))
# creating the query
query <- "insert into sample_table(subject,marks) VALUES"
# inserting values in sql query
query <- paste0(query, paste(sprintf("('%s', '%s')",
data_framesubject, data_framemarks), collapse = ","))
# sending the query to database
dbSendQuery(connection,query)
输出: 执行上述代码后,如果我们使用SQL查询显示该表的数据,我们将得到以下输出。
在上面的代码中,首先安装 “RMySQL “包,然后在 “R “和 “MySQL “之间建立一个连接,之后创建一个数据框架,我们将用它来存储MySQL表中的数据。在MySQL中,数据是使用SQL查询来插入的,所以创建一个查询,并使用paste0()方法处理数据,最后使用dbSendQuery()方法将数据发送到MySQL数据库表中。