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

Подключение MySQL в R

MySQL является одним из самых популярных систем управления реляционными базами данных, и в области WEB-приложений MySQL является одним из лучших приложений RDBMS (Relational Database Management System: Система управления реляционной базой данных)。

Для чтения и записи файлов MySQL в R необходимо установить расширение пакета, мы можем ввести следующую команду в консоль R для установки:

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

Проверьте, был ли он успешно установлен:

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

MySQL был приобретен компанией Oracle, поэтому многие люди используют его копию MariaDB, MariaDB является открытым исходным кодом под GNU GPL, разработка MariaDB ведется некоторыми оригинальными разработчиками MySQL, поэтому синтаксис差不多:

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

В базе данных test создается таблица w3codebox, структура и данные таблицы приведены ниже:

--
-- таблица структуры `w3codebox`
--
 
CREATE TABLE `w3codebox` (
  id int(11) NOT NULL,
  name char(20) NOT NULL,
  url varchar(255) NOT NULL,
  likes int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
--
-- Сохранение данных таблицы `w3codebox`
--
 
INSERT INTO `w3codebox` (`id`, `name`, `url`, `likes`) VALUES
(1, 'Google', 'www.google.com', 111),
(2, 'w3codebox', 'ru.oldtoolbag.com', 222),
(3, 'Taobao', 'www.taobao.com', 333);

# Далее мы можем использовать пакет RMySQL для чтения данных:

library(RMySQL)
# dbname - имя базы данных, пожалуйста,填写您自己的 параметры
mysqlconnection = dbConnect(MySQL(), user = 'root', password = '', dbname = 'test', host = 'localhost')
# Проверка данных
dbListTables(mysqlconnection)

Далее мы можем использовать dbSendQuery для чтения таблицы базы данных, результат集合 можно получить через функцию fetch():

library(RMySQL)
# Запрос к таблице sites, операции чтения, добавления, изменения и удаления могут быть реализованы через SQL-запрос во втором параметре
result = dbSendQuery(mysqlconnection, "select * from sites")
# Получить первые две строки данных
data.frame = fetch(result, n = 2)
print(data.fame)