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