Use o módulo Sequelize para operar a adição, exclusão, modificação e consulta do banco de dados

Já aprendemos sobre a criação de modelos no Sequelize. Agora vamos aprender como adicionar, excluir, modificar e verificar operações no banco de dados por meio do Sequelize. Ao operar o banco de dados, adicionar, excluir e modificar operações são relativamente simples. Vamos nos concentrar em explicando o banco de dados de consulta.

Instrução INSERT simples
A instrução Add é realizada através de Model.create(), o parâmetro é um objeto, o atributo do objeto é o campo da tabela e o valor do atributo são os dados a serem adicionados. Veja os exemplos a seguir:

const admin = sequelize.define('admin', {     username: {         type: DataTypes.STRING,         allowNull: false     },     userpass: {         type: DataTypes.STRING,         allowNull: false     } }); const ins = await admin.create( {     username: "Zhang San",     userpass: "123456", }); Após a conclusão da execução, um objeto será retornado e os atributos no objeto são os campos da tabela.














Várias partes de dados podem ser adicionadas de uma vez por meio de bulkCreate. O parâmetro em bulkCreate é uma matriz e os dados contêm os objetos de dados que precisam ser adicionados. Exemplos específicos:

const ins = await admin.bulkCreate([{     username: "Zhang San",     userpass: "123456", },{     username: "Wang Wu",     userpass: "549745", }]); Por padrão, bulkCreate é usado os dados inseridos não serão validados. Podemos adicionar valid: true ao modelo ao criar o modelo para permitir que bulkCreate também valide (consulte a próxima parte para obter detalhes sobre validação).






Instrução UPDATE simples
A instrução de modificação é implementada por meio de Model.update() e o parâmetro é um objeto. Veja os exemplos a seguir:

//Criação do modelo veja
await admin.update({ username: "Li Si" }, {   where: {     username: "Zhang San"   } }); passe a condição de modificação através do segundo parâmetro, o segundo parâmetro deve existir caso contrário, a modificação foi mal sucedido. Você pode modificar todos os dados atribuindo nulo a lastName e não adicionando atributos a where.




await admin.update({ username: "Lisi" }, {   where: {    username: null     }   //ou   //where: {    //} }); a instrução de modificação da instrução DELETE simples é implementada por meio de Model.destroy() , o parâmetro é um objeto. Veja os exemplos a seguir:








await admin.destroy({   where: {     username: "Zhang San"   } }); Se você quiser deletar todos os dados da tabela, você pode usar truncar




await admin.destroy({   truncate: true }); Instrução SELECT Consulta simples O método findAll() é usado para consultar o banco de dados




admin.findAll();
//traduzido em instrução SQL: SELECT * FROM
campos específicos da consulta de administração
Para selecionar alguns campos específicos, você pode usar o parâmetro de atributos:

//A criação do modelo admin vê o conteúdo acima
admin.findAll({   attribute: ['username'] }); //Tradução para instrução SQL: SELECT username FROM admin field renomeing //A criação do modelo admin vê o above content admin.findAll ({   attribute: [['username','name']] }); //Traduzido em instrução SQL: SELECT nome de usuário AS nome FROM função de agregação admin Use sequelize.fn para executar funções de agregação:











//A criação do modelo admin vê o conteúdo acima
admin.findAll({   attribute: [                 ['username','name'],                 [sequelize.fn('COUNT', sequelize.col('username')), ' n_hats']               ] }); //Traduzido para a instrução SQL: SELECT username AS name,COUNT(username ) AS n_hats FROM admin Todos os campos e campos excluídos podem ser adicionados através do atributo include, e o valor do último atributo indica a agregação adicional para ser adicionado, não é um array vazio.







//Para a criação do modelo admin, consulte o conteúdo acima
admin.findAll(attributes: {     include: []   } }); Alguns campos podem ser excluídos através do atributo exclude, e os seguintes valores de atributos são campos que precisam ser excluídos.



//A criação do modelo admin vê o conteúdo acima
admin.findAll(attributes: {     exclude: ['username']   } }); usando a cláusula where Sequelize fornece muitos operadores para concluirmos a cláusula where complexa.




Operator object
const { Op } = require("sequelize");
1
A seguir, uma lista parcial de operadores, listamos apenas os operadores e o uso específico não está listado aqui.

[Op.and]: [{ a: 5 }, { b: 6 }], // (a = 5) AND (b = 6) [Op.or]: [{
a: 5 }, { b: 6 }], // (a = 5) OU (b = 6)
[Op.eq]: 3, // = 3
[Op.ne]: 20, // != 20
[Op.is]: null, / / IS NULL
[Op.not]: true, // IS NOT TRUE
[Op.or]: [5, 6], // (someAttribute = 5) OR (someAttribute = 6)

// compara números
[Op.gt]: 6, // > 6
[Op.gte]: 6, // >= 6
[Op.lt]: 10, // < 10
[Op.lte]: 10, / / <= 10
[Op.between]: [6, 10], // ENTRE 6 E 10
[Op.notBetween]: [11, 15], // NÃO ENTRE 11 E 15

// outros operadores

      [Op.all]: sequelize.literal('SELECT 1'), // > ALL (SELECT 1)

      [Op.in]: [1, 2], // EM [1, 2]
      [Op.notIn]: [1, 2], // NÃO EM [1, 2]

[Op.like]: '%hat', // LIKE '%hat'
[Op.notLike]: '%hat', // NOT LIKE '%hat'
[Op.startsWith]: 'hat', // LIKE 'hat%'
[Op.endsWith]: 'hat', // LIKE '%hat'
[Op.substring]: 'hat', // LIKE '%hat%'
usando a cláusula where
ao usar a cláusula where , então o conteúdo deve ser colocado em um objeto, que pertence ao segundo parâmetro do método findAll, e o primeiro parâmetro é utilizado para operar o campo de consulta. Há um atributo chamado where neste objeto, que é usado para armazenar condições de consulta. Para uso específico, consulte:

admin.findAll({   where: {     username: "Zhang San"   } }); // SELECT * FROM admin WHERE username = 'Zhang San' classificação e agrupamento Acima aprendemos como usar a cláusula where é colocada na primeira linha de findAll Entre os dois objetos, não há apenas o atributo where, mas também o atributo order e o atributo group neste objeto






A
opção de ordem de classificação é usada para classificar dados para resultados de consulta. Ao classificar, uma tupla/matriz contendo a direção de classificação do atributo deve ser passada para garantir o escape correto:

admin.findAll({    order:[['username','DESC'],['userpass','ASC']] } ) ; A opção grouping group é usada para agrupar os resultados da consulta, e as condições de agrupamento precisam ser passado ao agrupar, especificamente Veja exemplos de uso:



admin.findAll({ username: 'name' });
1
Limitação e paginação
Use os parâmetros limit e offset para limitar/paginar:

// Busca 10 instâncias/linhas
Project.findAll({ limit: 10 });

// Pular 8 instâncias/linhas
Project.findAll({ offset: 8 });

// Ignore 5 instâncias e obtenha 5 instâncias
Project.findAll({ offset: 5, limit: 5 });

Link original: https://blog.csdn.net/qq_45040919/article/details/110318085

おすすめ

転載: blog.csdn.net/txl910514/article/details/131511643