CRUD 基础操作专题测试
考察知识点
- 创建记录(Create):Create 方法、批量创建 CreateInBatches、主键回填
- 查询记录(Read):First/Take/Last、Where 条件、Or/And 组合、Find 查询
- 更新记录(Update):Update 单字段、Updates 多字段、Save 保存、零值处理
- 删除记录(Delete):Delete 方法、软删除、Unscoped 永久删除
- 查询条件构建:链式调用、条件组合、排序分页
💡 参考答案在文末
判断题
1
db.Find(&users) 不加任何条件会查询表中的所有记录。
2
db.Save(&user) 会更新结构体中的所有字段,包括零值字段。
3
使用 Updates 方法传入结构体时,零值字段(如 0、空字符串)不会被更新到数据库。
4
使用 Delete 方法删除记录后,可以通过 result.RowsAffected 获取删除的记录数。
单选题
5
GORM 默认对包含 DeletedAt 字段的模型执行什么类型的删除?
6
GORM 的 Update 方法和 Updates 方法的主要区别是什么?
7
以下哪个是正确的 GORM Where 查询方式?
8
db.First(&user) 如果没有找到记录,会返回什么?
9
db.Where(map[string]interface{}{"name": "A", "age": 18}) 的查询条件是什么?
10
使用 db.Create(&user) 创建记录后,user 对象的 ID 字段会怎样?
11
db.Where("name = ?", "A").Or("name = ?", "B").Find(&users) 的 SQL 等价语句是?
12
db.First(&user) 和 db.Take(&user) 的主要区别是什么?
多选题
13
在 GORM 中,如何执行真正的物理删除(硬删除)?
14
以下哪些是 GORM Delete 方法的正确调用方式?
15
以下哪些是 GORM 支持的批量创建方式?
16
以下哪些是 GORM 支持的查询条件构建方式?
17
以下哪些是 GORM 支持的更新方式?
填空题
18
使用____________方法可以构建否定条件,如 db.Not("status = ?", 1) 等价于____________。
参考答案
1.正确
2.正确
3.正确
4.正确
5.B
6.B
7.A
8.B
9.A
10.B
11.A
12.A
13.A;C
14.A;B
15.A;B;C
16.A;B;C;D
17.A;B;C
18.Not;status != 1
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码