MySQL - это система управления реляционными базами данных. В реляционной базе данных данные хранятся в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой, есть возможность объединять при выполнении запроса данные из нескольких таблиц. Связь осуществляется посредством естественного (номер паспорта, в/у…) или суррогатного (auto_increment) ключа. Никакие записи таблицы не могут иметь двух одинаковых записей ключа.
Основные типы данных MySQL:
Числовые: tinyint (возраст человека, кол-во детей у одних родителей, кол-во учеников в одном классе), smallint (кол-во страниц в книге, кол-во учеников в школе), int (кол-во людей на Земле), bigint (кол-во молекул во Вселенной) , bool (0 или 1), float (число с точкой).
Дата и время: date, time, datatime, timestamp, year.
Строковые значения: tinytext (путь к файлу, фамилия, название книги), text (новостной блок), longtext (большая статья), enum (‘value1’, ‘value2’, ‘value3’)
Установка MySQL
По умолчанию в репозиторий пакетов APT в Ubuntu 18.04 включена только последняя версия MySQL. На момент написания этой диссертации это MySQL 5.7 [35].
Установка пакета MySQL осуществляется с помощью следующей команды:
sudo apt install mysql-server
Основы использования
Вставка строковых значений:
INSERT INTO catalog VALUES (1, ‘Школа ПХП’); //либо
INSERT INTO catalog VALUES (1, «Школа ПХП»);
Вставка числовых значений в таблицу:
INSERT INTO inttable VALUES (10, 20); //либо
INSERT INTO inttable (id_cat, id) VALUES (10, 20);
Вставка календарных значений в таблицу:
INSERT INTO catalog VALUES (1, «2010-06-9»); //ГГГГ-ММ-ДД
Механизм AUTO_INCREMENT – автоматическая генерация ключа
Обновление записей
UPDATE catalogs SET name = ‘Школа ПХП’
WHERE name = ‘ШКОЛА’
Выборка данных.
SELECT * FROM catalogs;
SELECT * FROM catalogs WHERE id_catalog > 2;
SELECT * FROM catalogs WHERE id_catalog > 2 AND id_catalog <= 4;
SELECT * FROM catalogs WHERE id_catalog BETWEEN 2 AND 4;
SELECT * FROM catalogs WHERE id_catalog NOT BETWEEN 2 AND 4;
SELECT * FROM catalogs WHERE id_catalog IN (1, 2, 5);
SELECT * FROM catalogs WHERE id_catalog NOT IN (1, 2, 5);
SELECT * FROM catalogs WHERE name = ‘школа’;
SELECT * FROM catalogs WHERE name LIKE ‘%ы’;
Сортировка записей
SELECT id_catalog, name FROM catalogs ORDER BY id_catalog DESC;
SELECT * FROM tbl ORDER BY id_catalog DESC, putdate DESC;
Вывод записей в случайном порядке
SELECT id_catalog, name FROM catalogs ORDER BY RAND();
Ограничение выборки
SELECT id_catalog, name FROM catalogs ORDER BY RAND() LIMIT 1;
SELECT id_catalog, name FROM catalogs ORDER BY id_catalog DESC LIMIT 2, 2;
Вывод уникальных значений
SELECT DISTINCT id_catalog FROM tbl ORDER BY id_catalog;
Математические функции (практически не используется)
Округление результатов вычисления
SELECT ROUND (A*B*SIN(RADIANS(angle))/2/0, 3) AS scool FROM triangle;
SELECT CEILING (0,49), CEILING (1,51), CEILING (-0,49), CEILING (-49,9);
SELECT FLOOR(0,49), FLOOR(1,51), FLOOR (-0,49), FLOOR (-49,9);
Вычисления
SELECT fio, (TO_DAYS(NOW()) – TO_DAYS(putdate))/365.25
Преобразование кодировки
SELECT CONVERT (‘Школа PHP’ USING koi8r);
Первые несколько символов строки.
SELECT SUBSTRING(fio, 1, 5) FROM tbl;
SELECT CONCAT (family, ‘ ‘, SUBSTRING (name, 1,1), ‘.’, SUBSTRING (patronymic, 1,1), ‘.’)
Перевод первого символа в верхний регистр
UPDATE tbl SET
family = CONCAT(UPPER(SUBSTRING(family, 1, 1)), SUBSTRING(family,2)),
name = CONCAT(UPPER(SUBSTRING(name, 1, 1)), SUBSTRING(name,2)),
patronymic = CONCAT(UPPER(SUBSTRING(patronymic, 1, 1)), SUBSTRING(patronymic,2)),
SELECT * FROM tbl;
Обратимое и необратимое шифрование
SELECT AES_ENCRYPT (‘MySQL’, ‘ключ’);
SELECT AES_DECRYPT (‘1VASF|)*)ADSF ADSF_+_’, ‘ключ’);
SELECT MD5(‘MySQL’);
Агрегатные функции
SELECT COUNT(id), COUNT(value) FROM tbl;
SELECT COUNT(*) FROM tbl WHERE value < 300;
SELECT MIN(price) FROM products;
SELECT SUM(price) FROM products;
Итак, сновы использования MySQL можно свести к следующим действиям:
Выбор из базы данных:
Одной записи.
Всех записей.
Множества записей, постранично.
Удаление.
Редактирование.
Вставка.
PHPMyAdmin
PHPMyAdmin - система управления базой данных MySQL (СУБД).
Для установки PHPMyAdmin можно воспользоваться репозиториями Ubuntu
sudo apt-get install phpmyadmin php-mbstring php-gettext
После установки, откроем браузер и наберем в адресной строке 127.0.0.1/phpmyadmin
Переходим во вкладку Базы данных, в поле «Новая база данных» пишем имя нашей базы. Затем выбираем кодировку (желательно utf8-general-ci, т.к. utf8 считается универсальной кодировкой). Нажимаем кнопку «Создать». Таким образом мы создали пустую базу данных. Сейчас необходимо ее заполнить данными.
Далее мы можем либо импортировать уже готовую базу (файл с расширением .sql), либо создавать таблицы и наполнять их значениями вручную.
После создания базы данных и заполнения таблиц значениями, необходимо ее подключить к Node.