当前课程知识点:数据库系统原理与开发 >  第6章 数据库应用编程 >  6.4 数据库游标 >  6.4 数据库游标

返回《数据库系统原理与开发》慕课在线视频课程列表

6.4 数据库游标在线视频

下一节:6.5 嵌入式SQL编程

返回《数据库系统原理与开发》慕课在线视频列表

6.4 数据库游标课程教案、知识点、字幕

同学们大家好

我是主讲教师陈安龙

下面我们开始学习数据库编程的第5小节“数据库游标”

本节学习的目标如下

1)了解触发器的基本概念

2)掌握postgreSQL触发器创建 修改 删除的方法

3)理解触发器的执行过程

一 游标的基本概念

(1)游标(Cursor)是一种临时的数据库对象

(2)用来存放从数据库表中查询返回的数据记录

(3)提供了从结果集中提取并分别处理每一条记录的机制

(4)游标总是与一条SQL查询语句相关联

(5)游标包括:SQL语言的查询结果

指向特定记录的指针

现在下面我们开始学习如何声明游标

二、声明游标

(1)在存储过程中游标类型的变量

例如:游标变量

关键字refcursor; refcursor是关键字

此时 游标变量还没有绑定查询语句

因此不能访问游标变量

(2)使用游标专有的声明语法

如: 游标名 CURSOR [ ( arguments ) ] FOR query;

其中arguments为由逗号分隔的参数列表

用于打开游标时向游标传递参数

类似于存储过程或函数的形式参数

query是select数据查询语句

返回的值存储在游标变量中

游标声明的示例

例如(1)curStudent CURSOR FOR SELECT * FROM student

(2)curStudentOne CURSOR (key integer)ISSELECT * FROM student WHERE SID = key;

三 打开游标

(1)OPEN FOR

其声明形式为:OPEN unbound_cursor FOR query

打开未绑定的游标变量

其query查询语句是返回记录的SELECT语句

例如 OPEN curVars1 FOR SELECT * FROM student WHERE SID = mykey;

(2)OPEN FOR EXECUTE

其声明形式为: OPEN unbound_cursor FOR EXECUTE query-string

打开未绑定的游标变量

EXECUTE将动态执行查询字符串

例如:OPEN curVars1 FOR EXECUTE 'SELECT * FROM ' || quote_ident($1);

注意:$1是指由存储过程传递的第1个参数

(3)打开一个绑定的游标

这里假设在存储过程中使用游标

其声明形式为: OPEN

仅适用于绑定的游标变量

只有当该变量在声明时包含接收参数

才能以传递参数的形式打开该游标

参数将传入到游标声明的查询语句中

例如:OPEN curStudent

OPEN curStudentOne 括号中有一个学生学号的参数

四 使用游标

其声明形式为 FETCH cursor INTO target

FETCH命令从游标中读取下一行记录的数据到目标中

读取成功与否

可通过PL/SQL内置系统变量FOUND来判断

例如:第1条语句是从游标curVars1读取数据到 rowvar中

第2条从curStudent读取数据到SID Sname sex等变量

请注意:游标的属性必须与 目标列的数量一致

并且类型兼容

如果游标不再使用

则需要关闭游标

五 关闭游标

CLOSE cursorName

当游标数据不再需要时

需要关闭游标

以释放其占有的系统资源

主要是释放游标数据所占用的内存资源

cursorName是游标名

例如 CLOSE curStudent

需要注意 当游标被关闭后

如果需要再次读取游标的数据

需要重新open打开游标

这时游标重新查询返回新的结果

在存储过程中使用游标的示例1

1 下列示例是使用不带参数的游标

查询student表的学号 学生姓名和性别

首先声明游标和局部变量 接下来打开游标

然后用循环实现对游标中的数据读取

最后关闭游标 结束程序

执行存储过程的结果

这里是存储过程使用游标从学生表中查询的学生信息

在存储过程中使用游标的示例2

下面示例使用带参数的游标

从成绩表中查询分数大于某给定值的学号和课程号

首先声明带参数的游标和局部变量

接下来打开游标

向游标中传递实参

然后用循环实现对游标中的数据读取

最后关闭游标

这里是存储过程使用游标从学生成绩表中查询的

成绩大于85分的学生信息

数据库系统原理与开发课程列表:

第1章 数据库系统概论

-1.1 数据库及其系统概念

--1.1 数据库及其系统概念

-1.2 数据库技术发展

--1.2 数据库技术发展

-1.3 数据库应用系统

--1.3 数据库应用系统

-1.4 典型数据库管理系统

--1.4 典型数据库管理系统

-1.5 PostgreSQL对象-关系数据库系统软件

--1.5 PostgreSQL对象-关系数据库系统软件

-第1章 数据库系统概论--本章单元测试

-第1章 数据库系统概论--本章重点问题讨论

第2章 数据库关系模型

-2.1 关系及其相关概念

--2.1.1关系及其相关概念-1

--2.1.2关系及其相关概念-2

-2.2 关系模型原理

--2.2.1关系模型原理-1

--2.2.2关系模型原理-2

-2.3 PostgreSQL数据库关系操作实践

--2.3 PostgreSQL数据库关系操作实践

-第2章 数据库关系模型--本章单元测试

-第2章 数据库关系模型--本章重点问题讨论

第3章 数据库操作SQL语言

-3.1 SQL语言概述

--3.1 SQL语言概述

-3.2 数据定义SQL语句

--3.2.1数据定义SQL语句-1

--3.2.2数据定义SQL语句-2

--3.2.3数据定义SQL语句-3

-3.3 数据操纵SQL语句

--3.3 数据操纵SQL语句

-3.4 数据查询SQL语句

--3.4.1单表数据查询

--3.4.2 内置函数与分组统计

--3.4.3 多表关联查询

-3.5 数据控制SQL语句

--3.5 数据控制SQL语句

-3.6 视图SQL语句

--3.6 视图SQL语句

-3.7 PostgreSQL数据库SQL实践

--3.7 PostgreSQL数据库SQL实践

-第3章 数据库操作SQL语言--本章单元测试

-第3章 数据库操作SQL语言--本章重点问题讨论

第4章 数据库设计与实现

-4.1 数据库设计概述

--4.1 数据库设计概述

-4.2 E-R模型方法

--4.2.1 E-R模型方法-1

--4.2.2 E-R模型方法-2

-4.3 数据库建模设计

--4.3.1 数据库建模设计-1

--4.3.2 数据库建模设计-2

-4.4 数据库规范化设计

--4.4.1 数据库规范化设计-1

--4.4.2 数据库规范化设计-2

-4.5 数据库设计模型SQL实现

--4.5 数据库设计模型SQL实现

-4.6 基于Power Designer的数据库设计建模实践

--4.6 基于Power Designer的数据库设计建模实践

-第4章 数据库设计与实现--本章单元测试

-第4章 数据库设计与实现--本章重点问题讨论

第5章 数据库管理

-5.1 数据库管理概述

--5.1 数据库管理概述

-5.2 事务管理

--5.2 事务管理

-5.3 并发控制

--5.3.1 并发控制-1

--5.3.2 并发控制-2

-5.4 安全管理

--5.4.1 安全管理-1

--5.4.2 安全管理-2

-5.5 数据库备份与恢复

--5.5 数据库备份与恢复

-5.6 PostgreSQL数据库管理项目实践

--5.6 PostgreSQL数据库管理项目实践

-第5章 数据库管理--本章单元测试

-第5章 数据库管理--本章重点问题讨论

第6章 数据库应用编程

-6.1 数据库连接技术

--6.1.1 数据库连接技术-1

--6.1.2 数据库连接技术-2

-6.2 数据库存储过程

--6.2 数据库存储过程

-6.3 数据库触发器

--6.3 数据库触发器

-6.4 数据库游标

--6.4 数据库游标

-6.5 嵌入式SQL编程

--6.5 嵌入式SQL编程

-第6章 数据库应用编程--本章单元测试

-第6章 数据库应用编程--重点问题讨论

第7章 NoSQL数据库技术

-7.1 NoSQL数据库概述

--7.1.1 NoSQL数据库概述-1

--7.1.2 NoSQL数据库概述-2

--7.1.3 NoSQL数据库概述-3

-7.2 列存储数据库

--7.2.1列存储数据库-1

--7.2.2列存储数据库-2

-7.3 键值对数据库

--7.3.1 键值对数据库-1

--7.3.2 键值对数据库-2

--7.3.3 键值对数据库-3

-7.4 文档型数据库

--7.4.1文档型数据库-1

--7.4.2文档型数据库-2

--7.4.3文档型数据库-3

-7.5 图形数据库

--7.5.1图形数据库-1

--7.5.2图形数据库-2

--7.5.3 图形数据库-3

-7.6 HBase数据库项目实践

--7.6 HBase数据库项目实践

-第7章 NoSQL数据库技术--本章单元测试

-第7章 NoSQL数据库技术--本章重点问题讨论

期末考试

-期末测试--期末测试

6.4 数据库游标笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。