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