数据库笔记13:创建与使用游标
2018-03-05 21:26
225 查看
/************************* 第十三单元 创建与使用游标**************************/
/* 知识点学习
1、游标的概念 2、游标的功能(定位、查询、修改) 3、游标的类型 3、使用游标的基本步骤*//* 任务一、创建基本游标 语法格式: DECLARE 游标名 CURSOR FOR SQL语句 [FOR {READ ONLY | UPDATE [字段列表]}]*/
--1. 针对Student表,创建游标cs_Student,查询班级号为20000002的学生数据。
DECLARE cs_Student CURSORFOR SELECT * FROM Student WHERE ClassNo='20000002'
--2. 使用OPEN语句打开游标cs_Student
OPEN cs_Student --记录指针在BOF(Beginning Of File)
--3. 使用FETCH语句从游标获取数据 /* 语法格式: FETCH [NEXT | PRIOR | FIRST | LAST] FROM 游标名 [INTO 变量列表] */
--(1) 查询游标cs_Student的第1行数据
FETCH NEXT FROM cs_Student
--通过全局变量@fetch_status了解游标查询是否成功PRINT @@fetch_status --返回0:成功;返回-1或-2:失败
--(2) 查询游标cs_Student的第5行数据--分析:有没有一条语句用于移动游标的记录指针?
DECLARE @StuNo NVARCHAR(8), @ClassNo NVARCHAR(8), @StuName NVARCHAR(10), @Pwd NVARCHAR(8)DECLARE @RecNo INTSET @RecNo=0CLOSE cs_Student --关闭游标OPEN cs_Student --打开游标FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @PwdWHILE @@fetch_status=0 BEGIN SET @RecNo=@RecNo+1 IF (@RecNo=5) BREAK; FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @Pwd END SELECT @StuNo 学号, @ClassNo 班级号, @StuName 姓名, @Pwd 选课密码
--课堂练习,查询游标cs_Student的某行数据,如果查到,则显示,否则提示用户“超出范围!”
DECLARE @StuNo NVARCHAR(8), @ClassNo NVARCHAR(8), @StuName NVARCHAR(10), @Pwd NVARCHAR(8)DECLARE @RecNo INT, @TargetNo INTSET @RecNo=0SET @TargetNo=5CLOSE cs_Student --关闭游标OPEN cs_Student --打开游标FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @PwdWHILE @@fetch_status=0 BEGIN SET @RecNo=@RecNo+1 IF @RecNo=@TargetNo BREAK; FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @Pwd END IF @@fetch_status=0 SELECT @StuNo 学号, @ClassNo 班级号, @StuName 姓名, @Pwd 选课密码ELSE PRINT '超出范围!'
--4. 将当前行的学生选课密码修改为“AAABBBCC”
UPDATE Student SET Pwd='AAABBBCC' WHERE CURRENT OF cs_Student
--验证:当前行学生的选课密码是否修改成功
--(1)验证原表
SELECT * FROM Student WHERE StuName='李林'
--(2)验证游标
DECLARE @StuNo NVARCHAR(8), @ClassNo NVARCHAR(8), @StuName NVARCHAR(10), @Pwd NVARCHAR(8)DECLARE @RecNo INTSET @RecNo=0CLOSE cs_Student --关闭游标OPEN cs_Student --打开游标FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @PwdWHILE @@fetch_status=0 BEGIN SET @RecNo=@RecNo+1 IF (@RecNo=5) BREAK; FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @Pwd END SELECT @StuNo 学号, @ClassNo 班级号, @StuName 姓名, @Pwd 选课密码
--5. 关闭游标cs_Student
CLOSE cs_Student
--6. 释放游标cs_Student
DEALLOCATE cs_Student
/* 知识点学习
1、游标的概念 2、游标的功能(定位、查询、修改) 3、游标的类型 3、使用游标的基本步骤*//* 任务一、创建基本游标 语法格式: DECLARE 游标名 CURSOR FOR SQL语句 [FOR {READ ONLY | UPDATE [字段列表]}]*/
--1. 针对Student表,创建游标cs_Student,查询班级号为20000002的学生数据。
DECLARE cs_Student CURSORFOR SELECT * FROM Student WHERE ClassNo='20000002'
--2. 使用OPEN语句打开游标cs_Student
OPEN cs_Student --记录指针在BOF(Beginning Of File)
--3. 使用FETCH语句从游标获取数据 /* 语法格式: FETCH [NEXT | PRIOR | FIRST | LAST] FROM 游标名 [INTO 变量列表] */
--(1) 查询游标cs_Student的第1行数据
FETCH NEXT FROM cs_Student
--通过全局变量@fetch_status了解游标查询是否成功PRINT @@fetch_status --返回0:成功;返回-1或-2:失败
--(2) 查询游标cs_Student的第5行数据--分析:有没有一条语句用于移动游标的记录指针?
DECLARE @StuNo NVARCHAR(8), @ClassNo NVARCHAR(8), @StuName NVARCHAR(10), @Pwd NVARCHAR(8)DECLARE @RecNo INTSET @RecNo=0CLOSE cs_Student --关闭游标OPEN cs_Student --打开游标FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @PwdWHILE @@fetch_status=0 BEGIN SET @RecNo=@RecNo+1 IF (@RecNo=5) BREAK; FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @Pwd END SELECT @StuNo 学号, @ClassNo 班级号, @StuName 姓名, @Pwd 选课密码
--课堂练习,查询游标cs_Student的某行数据,如果查到,则显示,否则提示用户“超出范围!”
DECLARE @StuNo NVARCHAR(8), @ClassNo NVARCHAR(8), @StuName NVARCHAR(10), @Pwd NVARCHAR(8)DECLARE @RecNo INT, @TargetNo INTSET @RecNo=0SET @TargetNo=5CLOSE cs_Student --关闭游标OPEN cs_Student --打开游标FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @PwdWHILE @@fetch_status=0 BEGIN SET @RecNo=@RecNo+1 IF @RecNo=@TargetNo BREAK; FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @Pwd END IF @@fetch_status=0 SELECT @StuNo 学号, @ClassNo 班级号, @StuName 姓名, @Pwd 选课密码ELSE PRINT '超出范围!'
--4. 将当前行的学生选课密码修改为“AAABBBCC”
UPDATE Student SET Pwd='AAABBBCC' WHERE CURRENT OF cs_Student
--验证:当前行学生的选课密码是否修改成功
--(1)验证原表
SELECT * FROM Student WHERE StuName='李林'
--(2)验证游标
DECLARE @StuNo NVARCHAR(8), @ClassNo NVARCHAR(8), @StuName NVARCHAR(10), @Pwd NVARCHAR(8)DECLARE @RecNo INTSET @RecNo=0CLOSE cs_Student --关闭游标OPEN cs_Student --打开游标FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @PwdWHILE @@fetch_status=0 BEGIN SET @RecNo=@RecNo+1 IF (@RecNo=5) BREAK; FETCH NEXT FROM cs_Student INTO @StuNo, @ClassNo, @StuName, @Pwd END SELECT @StuNo 学号, @ClassNo 班级号, @StuName 姓名, @Pwd 选课密码
--5. 关闭游标cs_Student
CLOSE cs_Student
--6. 释放游标cs_Student
DEALLOCATE cs_Student
相关文章推荐
- SQL Server学习笔记1:如何使用软件以及创建第一个数据库
- OpenCV 2 学习笔记(13): 算法的基本设计模式<4> :使用Model-View-Controller模式创建一个应用程序
- Android(java)学习笔记245:ContentProvider使用(银行数据库创建和增删改查的案例)
- 【Oracle笔记】6.创建数据库之使用DBCA创建数据库
- ADO.NET笔记——使用Connection连接数据库,使用Command对象的ExecuteReader()方法创建DataReader对象返回多行数据
- dnn3.0.5能否使用3.0.4创建的数据库?
- 使用JDBC创建数据库访问程序
- 在VB6中动态创建使用ADO控件访问数据库
- 通过创建用户profile文件, 限制用户对数据库资源使用
- 使用 JDBC 创建数据库对象 1
- 使用 WebSphere Studio Application Developer 创建数据库应用程序
- oracle笔记整理五[创建数据库]
- 使用游标收缩数据库日志文件并调整数据库属性选项栏部分设置
- NBear - 使用Entity Configurator设置实体元数据、生成数据库创建脚本
- 数据库中游标的使用.....用于循环
- 使用 SQL SERVER 2005 新增功能--- DDL_DATABASE_LEVEL_EVENTS 数据库级的触发器,创建数据库日志表
- 如何使用C#创建一个三层的数据库应用程序
- 使用 JDBC 创建数据库对象
- 使用 JDBC 创建数据库对象
- 使用 JDBC 创建数据库对象 2