课程章节:第2章 技术选型和知识点介绍(上)2-15 2-16
课程讲师:双越
课程内容:
插入数据
插入数据,输入IO操作,IO操作属于异步操作。传统的回调函数不太优雅,所以我们使用async/await来解决异步。
语法:
Model.create({});
例如:
const User = require('./userModel');
async function() {
// 创建用户
const user = await User.create({
username: 'zhangsan',
password: '123456'
})
// 底层会执行一个 SQL 语句:insert info users (...) values (...)
console.log("user:", user.dataValues)
}
查询数据
查询数据是最频繁的操作,Sequelize 提供了几个方法:
- 查询一条数据:Model.findOne({where: {字段: 字段值}}),会打印一条完整的记录。
- 查询一条数据的特定列:Model.findOne({attrubutes:[’’,’’], where: {}}),只打印一条数据的某些字段
- 查询所有数据:Model.findAll()
例如,查询用户名为 zhangsan 的记录:
const User = require('./userModel');
async function() {
const user = await User.findOne({
where: {
username: 'zhangsan',
}
})
console.log("user:", user.dataValues)
}
分页查询
分页查询要使用 limit 和 offset 属性去限制查询的数量和偏移量。例如,每页显示两条数据,跳过0条开始查询,就是从0条开始查询,即查询第一页的数据。
const User = require('./blogModel');
async function() {
const blog = await Blog.findAll({
limit: 2, // 限制本次查询 2 条记录
offset: 0, // 跳过0条,即查询第一页
order: [
['id', 'desc']
]
})
}
查询总数
如果需要快速查询某张表中一共有多少条记录,可以使用:
Model.findAndCountAll();
课程收获:
数据库操作最基本的就是增删改查 CRUD,这节课学习了使用 Sequelize 通过 create 方法完成数据的插入和常用的查询操作。