SQL 中的游标2025年2月2日 | 阅读7分钟 在SQL中,游标是在语句执行期间由数据库服务器分配的临时工作区。 它是一个数据库对象,允许我们一次访问一行数据。当用户需要逐行更新表中的行时,SQL中的这个概念非常有用。 SQL中的游标与其他编程语言中的循环技术相同。游标持有的元组集合称为活动集。 在SQL数据库系统中,用户使用DECLARE语句定义游标,并以SELECT语句作为参数,这有助于返回一组行。 在本文的SQL文章中,我们将学习游标的类型、游标的生命周期、游标的语法以及游标的实现。 SQL中的游标类型结构化查询语言中的游标有两种类型:
隐式游标当系统对SQL查询执行INSERT、DELETE和UPDATE操作时,SQL服务器会生成和分配这些类型的游标。 此游标也称为SQL中的默认游标。 当SELECT查询选择单行时,系统也会创建隐式游标。 显式游标这些类型的游标由用户使用SELECT语句创建。 显式游标包含多个记录,但一次只处理一行。它使用一个指针,在读取一行后会移到下一行。 它主要用于获得对临时工作区的额外控制。 游标的生命周期游标的生命周期分为以下五个阶段:
让我们简要讨论每个阶段。 1. 声明游标首先,我们必须使用以下SQL语法声明游标: 在此语法中,我们必须在DECLARE关键字之后指定游标的名称和数据类型。之后,我们必须编写SELECT语句,该语句定义了游标的结果集。 2. 打开游标这是第二个阶段,用于打开游标以存储从结果集中检索到的数据。我们可以使用以下SQL语法打开游标: 3. 获取游标这是游标生命周期中的第三个阶段,用于获取行,以便对游标中当前活动元组执行插入、删除和更新操作。 以下是用于从游标获取数据的语法中的六个选项: i. FIRST:此选项允许系统仅访问游标表中的第一条记录。FIRST选项的语法如下: ii. LAST:此选项允许系统仅访问游标表中的最后一条记录。LAST选项的语法如下: iii. NEXT:此方法允许系统沿正方向访问游标表中的数据。它是默认选项。此方法的语法如下: iv. PRIOR:此方法允许系统沿反方向访问游标表中的数据。此选项的语法如下: v. ABSOLUTE n:此方法允许系统访问游标表中精确第n行的数据。此选项的语法如下: vi. RELATIVE n:此方法允许系统以增量和减量过程访问数据。此选项的语法如下: 4. 关闭游标这是游标过程中的第四个阶段。当我们完成游标的工作后,我们必须在此阶段关闭游标。我们可以在SQL中使用以下查询关闭游标: CLOSE Cursor_Name; 5. 取消分配游标这是游标生命周期的最后一个阶段。在此部分,我们必须删除游标的定义并释放与游标关联的所有系统资源。 SQL中游标的语法基本游标类型结构化查询语言中的游标有以下四种基本类型:
静态游标静态游标可以向前和向后滚动。这类游标在创建游标期间填充结果集。与其他游标相比,它速度较慢,并且占用更多内存空间。 默认情况下,这些类型的游标是可滚动的。静态游标不允许数据库用户修改和删除数据。 向前滚动游标这类游标仅通过结果集向前访问和更新数据。因此,它是所有四种游标中最快的游标。 此游标的主要缺点是它不支持向后滚动。 以下是“向前滚动游标”的三种类型:
动态游标动态游标与静态游标正好相反。它允许我们在游标打开时执行INSERT、DELETE和UPDATE操作。 它检查结果集中对行和值的所有修改。 键集驱动游标这类游标从第一行到最后一行以及从最后一行到第一行访问数据。当用户打开KEYSET游标时,它会自动创建一个唯一值列表,这些值唯一标识结果集中的每一行。 SQL中游标的示例使用以下查询在SQL中创建一个Student表: 现在,像下面的块所示,向上面的Student表中插入一些值: 我们可以使用SQL中的以下SELECT语句检查Student表的数据: 此查询在输出中显示Student表的数据:
现在,我们将创建以下游标来显示Student表中的学生记录: 上述游标给出以下输出:
下一个主题SQL中DROP和TRUNCATE的区别 |
我们请求您订阅我们的新闻通讯以获取最新更新。