一、游标

1、游标简介

SQL是一种集合操作语言,但有时候需要对单行操作怎么办呢?
也就是有时候会过滤出不止一行的数据,但是想一行行的处理; ---游标 游标:
从集合中依次提取单条记录,直接提取完最后一条;
类似于指针的作用;
尽管游标能遍历结果中的所有行,但一次只指向一行; 游标的适用场景:
存储过程
函数
触发器 游标的使用步骤:
定义游标
DECLARE 游标名称 CURSOR FOR SELECT子句;
打开游标
OPEN 游标名称
使用游标
FETCH 游标名称 INTO 变量名1,变量名2,变量名3[,…]
关闭游标
CLOSE 游标名称

2、游标使用的示例

##配合存储过程使用

CREATE PROCEDURE cursor_student()
BEGIN
DECLARE v_student_id varchar(50);
DECLARE v_student_name varchar(100);
DECLARE done INT DEFAULT false; DECLARE mycursor CURSOR FOR SELECT student_id,student_name FROM student WHERE score >= 90;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true; OPEN mycursor; FETCH mycursor INTO v_student_id,v_student_name; WHILE(NOT done)
DO
SELECT v_student_id,v_student_name;
FETCH mycursor INTO v_student_id,v_student_name;
END WHILE; CLOSE mycursor;
END;

3、游标的优缺点

优点:
提供了一种除集合操作外的行操作方式; 缺点:
性能一般,数据量比较大的时候,还可能会造成内存不足;

二、事务

1、事务简介

事务是一种处理机制,它保证了要执行的一组操作,要么全部执行成功,要么全部执行不成功。

事务用来管理INSERT、UPDATE、DELETE语句。

在MySQL中,只有使用了Innodb存储引擎的数据库或表才支持事务。

事务的四个特性(ACID):
原子性(Atomicity)
要执行的一组操作,要么全部执行成功,要么全部执行不成功。如果中间一个操作执行失败,则前面已经执行成功的语句也会被回退。 一致性(Consistency)
事务开始前和执行后,并没有破坏数据的完整性。 隔离性(Isolation)
多个事务之间是相互隔离的,不会相互影响。 持久性(Durability)
事务执行结束后,数据就被永久保存在了数据库中,即使数据库出错、重启,数据也不会丢失。 事务控制:
开始一个新事务:BEGIN。
回滚当前事务:ROLLBACK。
提交当前事务:COMMIT。

SQL基础-游标&事务的更多相关文章

  1. (2.14)Mysql之SQL基础——游标

    (2.14)Mysql之SQL基础——游标 关键词:Mysql游标 -- (1)定义游标 declare cur_name cursor for select * from table_name wh ...

  2. [SQL基础教程] 4-4 事务

    [SQL基础教程] 4 数据更新 4-4 事务 事务 需要在同一处理单元中执行的一系列更新处理的集合 创建事务 事务开始语句; DML语句1; DML语句2; . . . 事务结束语句; 事务开始语句 ...

  3. 《SQL基础教程》+ 《SQL进阶教程》 学习笔记

    写在前面:本文主要注重 SQL 的理论.主流覆盖的功能范围及其基本语法/用法.至于详细的 SQL 语法/用法,因为每家 DBMS 都有些许不同,我会在以后专门介绍某款DBMS(例如 PostgreSQ ...

  4. 常见SQL语句和SQL基础知识

    引自:http://blog.csdn.net/u012467492/article/details/46790205 SQL语句考察(一) 1.查询出每门课都大于80 分的学生姓名 name   k ...

  5. SQL Server 游标运用:鼠标轨迹字符串分割

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 游标模板(Cursor Template) 鼠标轨迹字符串分割SQL脚本实现(SQL Code ...

  6. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  7. 第十七周翻译-SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志

    SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志 作者:Tony Davis,2012/01/27 翻译:赖慧芳 译文: 该系列   本文是Stairway系列的一部分:SQL ...

  8. SQL Server-聚焦事务、隔离级别详解(二十九)

    前言 事务一直以来是我最薄弱的环节,也是我打算重新学习SQL Server的出发点,关于SQL Server中事务将分为几节来进行阐述,Always to review the basics. 事务简 ...

  9. SQL Server 之 事务与隔离级别实例讲解

    SQL Server 之 事务与隔离级别实例讲解 SQL Server 实现了6个隔离级别来防止并发情况下,类似企图并发的访问或修改同一数据时问题的发生.本文将带你体验全部6个隔离级别.正如你接下来将 ...

随机推荐

  1. Delphi面向对象的编程思想

    第一章.建立面向对象的新思维 1.1.1历史背景 目前对象技术的前沿课题包括设计模式.分布式对象系统.和基于网络的对象应用等 目前面向对象的语言包含4个基本的分支: 1.基于Smalltalk的:包括 ...

  2. .net list转树状结构

    主要的方法 /// <summary> /// 转化成树结构 /// </summary> /// <param name="menuList"> ...

  3. APS.NET MVC + EF (05)---控制器

    Controller(控制器)在ASP.NET MVC中负责控制所有客户端与服务端的交互,并且负责协调Model与View之间数据传递,是ASP.NET MVC框架核心.Controller为ASP. ...

  4. WebAPI中路由参数中包含字符-点“.”

    请求url都是类似:/api/area/province.list 我们默认建立的Asp Net WebApi 服务时,如果请求url包含“.”,则返回404错误. 解决办法:需要在web.confi ...

  5. jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条

    jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒 ...

  6. MybatisGenerator生成SSM的dao层

    官网下载 mybatis generator 下载generator的release版本mybatis-generator-core-1.4.0-bundle.zip https://github.c ...

  7. angularJS中select元素的应用浅析

    select array 数据: select ng-model 用法: 1.可以是一个对象形式,ng-model="test" $scope.test = {name: &quo ...

  8. Prometheus学习笔记(3)什么是node_exporter???

    目录 Node_exporter安装配置启动 Node_exporter安装配置启动 node_exporter安装在被监控端,安装方式也比较简单,直接下载解压安装即可,默认启动后监听9100端口. ...

  9. ajax入门简介

    ajax的实现原理 ajax的定义是 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它可以在不刷新页面的情况下提交请求与服务器进行交互动作 ...

  10. gitlab上下载项目

    第一步:下载安装git,在官网下载安装即可,没有账号的自己注册账号: 第二步:在左面空白处点击鼠标右键,点击Git Bash Here,出现对话框: 第三步:配置本地仓库的账号邮箱git: $ git ...