Публикации - Node.js

Базы данных - MySQL

Sequelize
Модуль MySQL

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.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться