Рубрики
Без рубрики

Взаимодействие с базами данных MySQL с помощью Sequelize

Введение в MySQL MySQL – это система управления реляционной базами данных (RDBMS). Данные в … Помечено в React, JavaScript, начните.

Введение в Mysql.

MySQL – это система управления реляционной базами данных (RDBMS). Данные в этих типах баз данных расположены в таблицах, которые могут ссылаться на другие данные, хранящиеся в таблицах. Это соотношение между данными в отдельных таблицах помогает добавить структуру в данные и дает происхождение RDBMS имени. В большинстве случаев эти базы данных должны быть искать или запросываться с использованием конкретного синтаксиса, который создает создатели базы данных. К счастью, для нас существуют программы, которые позволяют нам свободу и гибкость, чтобы запросить эти базы данных в более JavaScript, подобном формату, эти типы программ называются ORM или объектно-реляционным картированием. Sequelize – это одна из этих программ. Он обрабатывает задачу преобразования между объектами в JavaScript и строками в базе данных MySQL. Давайте посмотрим на процесс получения секвенирования настроек и запущении в проекте с использованием базы данных MySQL.

Настройка базы данных MySQL

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

CREATE DATABASE music;
USE music;
CREATE TABLE songs (
  id int(5) auto_increment primary key,
  name char(30),
  artist char(20)
);

insert into songs(name, artist)
        values ('Stairway To Heaven', 'Led Zeppelin');
insert into songs(name, artist)
        values ('Rain Song', 'Led Zeppelin');

insert into songs(name, artist)
        values ('Better Now', 'Post Malone');

insert into songs(name, artist)
        values ('Congratulations', 'Post Malone');

Когда мы запрашиваем нашу базу данных, мы можем выбрать всю таблицу, используя этот запрос:

SELECT * FROM songs;

| id |               name |       artist |
|----|--------------------|--------------|
|  1 | Stairway To Heaven | Led Zeppelin |
|  2 |          Rain Song | Led Zeppelin |
|  3 |         Better Now |  Post Malone |
|  4 |    Congratulations |  Post Malone |     

Чтобы выбрать только песни по Post MalOne, вы можете использовать этот запрос:

SELECT name FROM songs
      WHERE artist = 'Post Malone';

|            name |
|-----------------|
|      Better Now |
| Congratulations |

Теперь, когда у нас есть понимание того, как базовая база данных в функциях MySQL, давайте посмотрим, как этот процесс можно сделать с помощью SEXELIZE ORM!

Создание базы данных с помощью Sequelize

Давайте посмотрим, как настройка базы данных с помощью Sequelize отличается от процесса, описанного выше.

// Run in the terminal to install Sequelize 
// and the MySQL database
npm install --save sequelize
npm install mysql --save

Теперь у нас все настроено, чтобы использовать SEXELIZE в файле JavaScript, чтобы создать нашу базу данных и определить таблицы, которые мы хотим внутри. Давайте посмотрим на этот процесс.

// Run in the Javascript file

const {sequilize} = require('sequelize');

const db = new Sequelize('music', 'root', '', {
  host: 'localhost',
  dialect: 'mysql',
});

const Songs = db.define('Songs', {
  id: {
    type: Sequelize.INTEGER,
    autoIncrement: true,
    primaryKey: true
  },
  song: {
    type: Sequelize.STRING,
  },
  artist: {
    type: Sequelize.STRING,
  }
});

После выполнения строк кода выше мы сделали то же самое, что и ранее. Мы создали музыкальную базу данных, используя SEXELIZE и создали таблицу песен со значениями идентификатора, песни и художника. Теперь, когда мы создали базу данных и таблицу, давайте добавим некоторые данные в таблицу, как и раньше. Обратите внимание на то, как мы используем ключевое слово «await», это потому, что почти каждый метод продолжения асинхронна!

const createData = async () => {
  const congratulations = await Songs.create({
    song: 'Congratulations',
    artist: 'Post Malone'
  }):

  const betterNow = await Songs.create({
    song: 'Better Now',
    artist: 'Post Malone'
  }):

  const stairWay = await Songs.create({
    song: 'Stairway to Heaven',
    artist: 'Led Zeppelin'
  }):

  const rainSong = await Songs.create({
    song: 'Rain Song',
    artist: 'Led Zeppelin'
  }):
}

Теперь, когда мы заполнили наши данные, нам нужно иметь способ доступа к данным, которые мы вставили в наш стол, давайте посмотрим на то, что это сделано. Scilezize имеет отличный метод под названием Findall ().

const getData = async () => {
  const getMyMusic = await Songs.findAll();
  console.log(getMyMusic); 
}

// Prints the following to the console

dataValues:
     { id: 1,
       name: 'Congratulations',
       artist: 'Post Malone',
       createdAt: 2020-07-19T20:20:06.450Z,
       updatedAt: 2020-07-19T20:20:06.450Z 
     },
     { id: 2,
       name: 'Better Now',
       artist: 'Post Malone',
       createdAt: 2020-07-19T20:20:06.450Z,
       updatedAt: 2020-07-19T20:20:06.450Z 
     },   
     { id: 3,
       name: 'Stairway to Heaven',
       artist: 'Led Zeppelin',
       createdAt: 2020-07-19T20:20:06.450Z,
       updatedAt: 2020-07-19T20:20:06.450Z 
     },
     { id: 4,
       name: 'Rain Song',
       artist: 'Led Zeppelin',
       createdAt: 2020-07-19T20:20:06.450Z,
       updatedAt: 2020-07-19T20:20:06.450Z 
     },

Возможность использовать ORM во время работы с базами данных делает жизнь намного проще. Создание вашей базы данных и определение структуры все может быть выполнено в ваших файлах JavaScript и не требует использования вашего интерфейса MySQL. Scentize также можно использовать для выполнения конкретных запросов вашей базы данных, как и в MySQL. Для получения дополнительной информации проверить Последовательность документации Отказ Также Эта статья Джозеф Ху, действительно помог укрепить мое понимание продолжения, дать ему чтение! Я надеюсь, что моя статья предоставила представление как MySQL, так и секвентификацию, и как использование ORM может действительно ускорить процесс создания и определения вашей базы данных!

Оригинал: “https://dev.to/cschratz/interacting-with-mysql-databases-with-sequelize-5ggi”