概要
在本模块中,你学习了高级 T-SQL 技术,可帮助你编写更具表现力、高效且可维护的数据库代码。 这些功能解决了涉及复杂分析、分层数据、JSON 处理和错误处理的常见数据库开发方案。
你已了解如何执行以下操作:
- 编写通用表表达式(CTE)以组织复杂查询并使用递归模式遍历分层数据结构
- 应用窗口函数进行排名、累计总计、移动平均值以及保留行级详细信息的分析计算
- 使用 JSON 函数(包括
JSON_OBJECT、JSON_ARRAYJSON_ARRAYAGG、OPENJSON和JSON_VALUE)分析、构造和转换 JSON 数据 - 使用
REGEXP_LIKE、REGEXP_REPLACE、REGEXP_SUBSTR和相关函数实现用于模式匹配和文本操作的正则表达式 - 使用模糊字符串函数(例如
EDIT_DISTANCE,EDIT_DISTANCE_SIMILARITY和)查找近似匹配JARO_WINKLER_DISTANCE - 使用
MATCH运算符创建图形表,并利用SHORTEST_PATH进行关系遍历来编写查询。 - 为逐行比较、存在检查和每行计算编写相关子查询
- 使用
TRY...CATCH、错误函数、THROW和适当的事务管理实现结构化错误处理
关键结论
- 递归 CTE 是遍历分层数据(如组织结构图或材料清单结构)的标准方法
- 具有
OVER子句的窗口函数可以进行分析计算,而无需折叠行。 累计总计和排名使用窗口函数而非自连接 -
JSON_OBJECT和JSON_ARRAYAGG从关系数据构建 JSON,而OPENJSON将 JSON 解析成关系行 -
JARO_WINKLER_DISTANCE针对名称匹配进行优化;EDIT_DISTANCE_SIMILARITY更适合较长的字符串 - 在
CATCH块中,始终在ROLLBACK之前检查@@TRANCOUNT,以处理无活动事务的情况 - 将
SET XACT_ABORT ON与TRY...CATCH结合以实现完整的事务保护