ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

第八章 数据库后台编程技术

第八章 数据库后台编程技术 核心地位本章是三级数据库考试从“基础操作”向“高级应用”过渡的关键。它不再局限于简单的增删改查D-SQL而是深入到使用流程控制语句I-SQL来构建复杂的业务逻辑是数据库应用开发的核心。第一部分详细知识点1. 存储过程 (Stored Procedure)概念一组为了完成特定功能的、预编译的 T-SQL 语句集合。它被编译后存储在数据库中用户通过指定存储过程的名字并给出参数来执行。优点提高性能预编译执行速度快。减少网络流量只需传输过程名和参数而非大量SQL代码。增强安全性可以授权用户执行存储过程而不直接操作底层表。模块化设计代码可重用易于维护。基本语法-- 创建CREATEPROC[EDURE]过程名[{参数名 数据类型[默认值][OUTPUT]},...]ASBEGINT-SQL语句块包含流程控制语句END-- 执行EXEC[UTE]过程名[参数值,...]-- 删除DROPPROC[EDURE]过程名参数类型输入参数默认类型用于向过程传递值。输出参数 (OUTPUT)用于从过程中返回值。关键点BEGIN...END用于定义语句块RETURN语句用于退出并返回状态值。2. 用户自定义函数 (User-Defined Function, UDF)概念用户根据自己需求定义的函数。必须返回一个值标量值或表。与存储过程的区别特性存储过程用户自定义函数返回值可以没有或通过OUTPUT参数/return返回状态值必须有返回值标量或表调用方式EXEC语句在SQL语句中调用如同内置函数用途执行操作、逻辑控制计算并返回一个值限制可修改数据库数据函数内通常不能修改数据库状态不能有INSERT/UPDATE等类型标量函数返回单个数据值。CREATEFUNCTION函数名(参数 数据类型,...)RETURNS返回值数据类型ASBEGIN...计算逻辑...RETURN标量表达式END内联表值函数返回一个TABLE单条SELECT语句的结果。CREATEFUNCTION函数名(参数 数据类型,...)RETURNSTABLEASRETURN(一条SELECT语句)多语句表值函数在函数体内有多个语句最终构造一个表返回。CREATEFUNCTION函数名(参数 数据类型,...)RETURNS返回变量TABLE(表定义)ASBEGIN...向 返回变量 中插入数据的逻辑...RETURNEND3. 触发器 (Trigger)概念一种特殊的存储过程它在特定数据库事件INSERT, UPDATE, DELETE发生时自动触发执行。不能被直接调用没有参数。用途保证数据完整性、执行复杂的审计、实现级联操作。类型AFTER 触发器后触发器在数据变动INSERT/UPDATE/DELETE完成之后执行。主要用于检查、审计、级联更新。INSTEAD OF 触发器前触发器取代原本的数据变动操作执行。主要用于处理对视图的复杂更新。关键虚拟表inserted 表临时存放进行INSERT或UPDATE操作时新的数据行。deleted 表临时存放进行DELETE或UPDATE操作时旧的数据行。基本语法CREATETRIGGER触发器名ON表名|视图名FOR|AFTER|INSTEADOF[INSERT],[UPDATE],[DELETE]ASBEGIN...触发器的逻辑经常需要判断 ROWCOUNT或访问 inserted/deleted 表...END注意事项触发器是事务的一部分可以在触发器内ROLLBACK事务撤销触发它的操作。避免在触发器中进行复杂的耗时操作会影响原操作的性能。注意递归触发和嵌套触发的问题。4. 游标 (Cursor)概念一种用于逐行处理结果集的机制。它把集合操作SQL转换为单记录处理方式。使用场景需要对查询结果的每一行进行不同操作时。通常作为最后的选择因为性能开销大。使用步骤非常重要且常考声明游标(DECLARE)定义游标的名称和结果集。打开游标(OPEN)执行查询填充结果集。提取数据(FETCH)逐行从游标中获取数据。关闭游标(CLOSE)释放当前结果集。释放游标(DEALLOCATE)释放游标所占用的所有资源。基本语法DECLARE游标名CURSORFORSELECT语句OPEN游标名FETCHNEXTFROM游标名INTO变量1 变量2...WHILEFETCH_STATUS0-- 表示成功取到数据BEGIN...处理当前行的逻辑...FETCHNEXTFROM游标名INTO变量1 变量2...ENDCLOSE游标名DEALLOCATE游标名第二部分核心考点与题型分析语法题选择题/填空题考查各种后台对象的创建、修改、删除的关键字语法。例如创建存储过程用CREATE PROC执行用EXEC。例如触发器分为AFTER和INSTEAD OF。例如游标的五个步骤对应的关键字。概念区分题选择题存储过程 vs 函数最经典的考点。一定会考它们的区别如上表所示特别是“能否修改数据库数据”和“调用方式”。AFTER 触发器 vs INSTEAD OF 触发器考查执行时机和用途的区别。游标 vs 集合操作考查为何以及何时使用游标性能差异。读程序写结果题选择题/大题小题给出一段包含存储过程、函数或触发器的代码要求分析其功能或写出执行结果。触发器中重点考查对inserted和deleted表的理解。例如在UPDATE触发器中deleted表存的是旧值inserted表存的是新值。考查变量作用域、参数传递尤其是OUTPUT参数和RETURN语句的含义。程序填空题大题在大型应用题中给出一段不完整的后台编程代码通常是存储过程或触发器要求根据上下文和功能描述填补空缺的代码。常见填空内容游标的声明、遍历循环 (WHILE FETCH_STATUS 0)。触发器中对inserted/deleted表的操作。存储过程中IF...ELSE、CASE等流程控制语句。错误处理语句 (ERROR)。应用题设计题 - 大题描述一个业务逻辑如“当商品库存小于0时禁止销售”“删除部门时将其所有员工调至默认部门”要求考生选择最合适的后台编程技术通常是触发器并写出实现代码。这种题综合考查对知识点的理解和灵活运用能力。
返回列表