高级查询技术专题测试
考察知识点
- 子查询与嵌套查询
- 原生 SQL 查询(Raw/Scan)
- 分组查询与聚合函数
- 复杂条件与表达式
💡 参考答案在文末
判断题
1
如果 BeforeCreate 钩子返回 error,GORM 会取消创建操作并返回该错误。
2
db.Exec 适合执行 INSERT/UPDATE/DELETE 等修改操作,返回结果包含 RowsAffected。
3
事务隔离级别越高(如 Serializable),数据库的并发性能就越低。
4
在嵌套事务中,如果内层事务返回 error 回滚到 SavePoint,外层事务仍然可以 Commit。
5
GORM 的链式查询是延迟执行的,只有在调用 Find/First/Take 等方法时才真正发送 SQL。
单选题
6
如何按部门统计用户数量?
7
GORM 是否支持跨多个数据库连接的事务?
8
GORM 中如何在创建记录前自动设置 UUID?
9
BeforeUpdate 和 BeforeSave 的主要区别是什么?
10
如何执行原生 SQL 查询并扫描到结构体?
11
db.Model(&User{}).Select("id, name").Where("age > ?", 18).Order("name").Limit(10) 的 SQL 等价语句是?
12
实现第 3 页、每页 10 条的分页查询,应该使用什么参数?
多选题
13
在 BeforeUpdate 钩子中,如何获取被更新的字段?
14
以下哪些是 Having 方法的正确使用方式?
15
在 Web 应用中,如何将事务与中间件结合实现每个请求一个事务?
16
如何在分页查询时获取总记录数?
17
以下哪些是 GORM 创建操作相关的钩子?
填空题
18
分页查询中,Offset 的计算公式为 ____________,其中 page 从____________开始。
19
事务执行失败时,GORM 会返回错误。正确处理方式是检查 ____________ 并决定是否需要____________或返回给调用者。
参考答案
1.正确
2.正确
3.正确
4.正确
5.正确
6.B
7.B
8.A
9.A
10.D
11.A
12.A
13.A;B
14.A;B;C
15.A;B;C
16.A;D
17.A;B;C;D
18.(page-1)*pageSize;1
19.err;重试
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码