diff --git "a/19\346\235\250\346\235\250/20221007-\344\272\213\345\212\241\345\233\236\346\273\232\345\222\214\346\270\270\346\240\207.md" "b/19\346\235\250\346\235\250/20221007-\344\272\213\345\212\241\345\233\236\346\273\232\345\222\214\346\270\270\346\240\207.md" new file mode 100644 index 0000000000000000000000000000000000000000..5e763367dfc5d0d87862ed249150ca4f45ea5eff --- /dev/null +++ "b/19\346\235\250\346\235\250/20221007-\344\272\213\345\212\241\345\233\236\346\273\232\345\222\214\346\270\270\346\240\207.md" @@ -0,0 +1,57 @@ +### 一、游标(对查询结果进一步操作) + +##### 1.概念 +``` +游标可以把 sql查询的结果集 转化为 单个记录 查询、处理 +可以对返回集 的 每一行 进行操作 +即: +面向数据库管理系统--游标一线牵-- 面向行的程序设计 +``` + +##### 2. 声名游标、打开游标、读取数据(定义操作)、关闭游标、删除游标(释放内存)。 +```sql + 声名游标: DEClARE DEC_1 CURSOR + FOR + select 语句 + + 打开游标: OPEN DEC_1 + + 读取数据(定义操作): FETCH [NEXT |PRIOR|FIRST|LAST|] from DEC_1 INTO 指定列名 [where条件] + --选取 --传入 + + 关闭游标:CLOSE DEC_1 + 删除游标(释放内存):DEALLOCATE DEC_1 + +/* NEXT: 取下一行的数据,并把下一行作为当前行(也就是递增)。 + INTO @定义的变量名[···、···]将提取的数据放到局部变量中 + */ + ``` +##### 3.出处:https://blog.51cto.com/u_6220803/3198583 +----- + +### 二、事务(相当于预处理) +#### 1.四个特性 +``` +原子性:最细小的步骤,互不干扰,互不包含互不交叉 +一致性:数据变动了统一提醒 +隔离性:特殊通道,限单人使用,不能同时被操作,单线程 +持久性:一条道走到黑 +``` +#### 2.语法 +```sql +--@@error 数据库自带的判断值 当 出现错误时 值变为0 +begin transaction +declare @temp int =0 --统计出错次数 +--数据库操作语句 +set @temp = @temp + @@error --如果操作可行改变判断条件 +if +@temp = 0 +begin +commit transaction --提交事务 +end +else +begin +rollback transaction --回滚事务 +``` +#### 3.来源:https://blog.csdn.net/weixin_55032665/article/details/123786890 +--- \ No newline at end of file