Sequelize

本文详细介绍了如何使用 Sequelize ORM 进行数据库连接、模型定义、数据查询及操作等核心功能,包括连接数据库、定义模型、创建表、查询、更新、删除等常见操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 连接数据库

 const DB = require('sequelize')
// 连接数据库
const connect = new DB('xjg', 'root', 'root', {
  host: 'localhost',
  port: '3306',
  dialect: 'mysql',
  timezone: '+08:00',
  operatorsAliases: false
})
  •  测试是否连接成功

  • 定义模型(表)

  参数:1.表名 2.字段配置项 3.表配置项

 

timeStamps: true // 会在数据库中自动添加数据的创建时间贺修改时间
paranoid:true //开启软删除(就是数据不显示,但是还存在于数据库中)
  • 创建表

force: true // 前置同步(每次先删除表,再创建表)
  •  查询

  • 模型定义配置项
type: DB.STRING, //常用数据类型有:STRING,TEXT,INTEGER,DATE,BOOLEAN
allowNULL: false,  //是否允许为空
defaultValue:‘’,  //默认值-若(type:DB.BOOLEAN,则defaultValue:ture);若(type:DB.DATE,则defaultValue:DB.NOW)
unique: true,  //单行,若为多行唯一,则值全部相同即可
primaryKey: true, //主键,若不写,则默认为id,且自增
autoIncrement: true, //自增,一个表自增字段只有一个
references: {
model:Bar, //另外一个表
key: 'id', // 与之关联的字段
}
  •  读取数据库中某字段的值:
this.getDataValue('id')或者直接 .id 或者get('id')
  • 改变字段的值,get () 、set ()

  •  使用模型(操作表)  
User.findById(123).then(pro => {})  //通过id查询
User.findOne({where:{title: 'ninhao'}}).then(pro => {})  //只查询满足条件的一条
User.findOne({where:{title: 'ninhao'},attributes: ['id','name','age']}).then(pro => {})  //限定字段查询
User.findOrCreate() // 先查找,如不在,则添加
User.create({name: '小小',age: 12}).then() //添加
User.findAll({limit:10, offset:10,order:'title DESC'
,raw:true}).then() //查询所有数据(限制10条数据,偏移量10,按照title升序);多个就写在数组里;raw:true 会让查询速度更快
  • min、max

  • sum

  •  更新update()

  • 删除destroy()

  模型关系(添加默认外键)

  或  

  自定义外键,和对应表的字段

 

转载于:https://www.cnblogs.com/candy-Yao/p/9987428.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值