English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Conexão MySQL em R

A MySQL é um dos sistemas de gerenciamento de banco de dados relacionais mais populares e uma das melhores aplicações RDBMS (Relational Database Management System: Sistema de Gerenciamento de Banco de Dados Relacional) para aplicações web.

Para ler e escrever arquivos MySQL em R, é necessário instalar o pacote de extensão. Podemos digitar o seguinte comando no console R para instalar:

install.packages("RMySQL", repos = "https://mirrors.ustc.edu.cn/CRAN/")

Verifique se a instalação foi bem-sucedida:

> any(grepl("RMySQL", installed.packages()))
[1TRUE

A MySQL foi adquirida pela Oracle, então muitas pessoas usam sua versão de cópia, MariaDB, que é open source sob a GNU GPL. O desenvolvimento da MariaDB é liderado por alguns dos desenvolvedores originais da MySQL, então as operações de sintaxe são semelhantes:

install.packages("RMariaDB", repos = "https://mirrors.ustc.edu.cn/CRAN/")

Crie a tabela de dados w no banco de dados test3codebox, a estrutura da tabela e o código de dados são os seguintes:

--
-- Tabela da estrutura `w3codebox`
--
 
CREATE TABLE `w3codebox (
  id int11NOT NULL
  name char20 NOT NULL
  url varchar255NOT NULL
  `likes` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
--
-- Copia dados da tabela `w3codebox`
--
 
INSERT INTO `w3codebox` (`id`, `name`, `url`, `likes`) VALUES
(1, 'Google', 'www.google.com', 111),
(2, 'w3codebox', 'pt.oldtoolbag.com', 222),
(3, 'Taobao', 'www.taobao.com', 333);

# A seguir, podemos usar o pacote RMySQL para ler dados:

library(RMySQL)
# dbname é o nome do banco de dados, os parâmetros aqui devem ser preenchidos conforme a sua situação real
mysqlconnection = dbConnect(MySQL(), user = 'root', password = '', dbname = 'test', host = 'localhost')
# Visualiza dados
dbListTables(mysqlconnection)

A seguir, podemos usar dbSendQuery para ler a tabela do banco de dados, o conjunto de resultados é obtido através da função fetch():

library(RMySQL)
# Consulta à tabela sites, operações de leitura, escrita, atualização e exclusão podem ser realizadas através da sentença SQL no segundo parâmetro
result = dbSendQuery(mysqlconnection, "select * from sites")
# Obtém as duas primeiras linhas de dados
data.frame = fetch(result, n = 2)
print(data.fame)