SQL基础-游标&事务
一、游标
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基础-游标&事务的更多相关文章
- (2.14)Mysql之SQL基础——游标
(2.14)Mysql之SQL基础——游标 关键词:Mysql游标 -- (1)定义游标 declare cur_name cursor for select * from table_name wh ...
- [SQL基础教程] 4-4 事务
[SQL基础教程] 4 数据更新 4-4 事务 事务 需要在同一处理单元中执行的一系列更新处理的集合 创建事务 事务开始语句; DML语句1; DML语句2; . . . 事务结束语句; 事务开始语句 ...
- 《SQL基础教程》+ 《SQL进阶教程》 学习笔记
写在前面:本文主要注重 SQL 的理论.主流覆盖的功能范围及其基本语法/用法.至于详细的 SQL 语法/用法,因为每家 DBMS 都有些许不同,我会在以后专门介绍某款DBMS(例如 PostgreSQ ...
- 常见SQL语句和SQL基础知识
引自:http://blog.csdn.net/u012467492/article/details/46790205 SQL语句考察(一) 1.查询出每门课都大于80 分的学生姓名 name k ...
- SQL Server 游标运用:鼠标轨迹字符串分割
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 游标模板(Cursor Template) 鼠标轨迹字符串分割SQL脚本实现(SQL Code ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
- 第十七周翻译-SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志
SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志 作者:Tony Davis,2012/01/27 翻译:赖慧芳 译文: 该系列 本文是Stairway系列的一部分:SQL ...
- SQL Server-聚焦事务、隔离级别详解(二十九)
前言 事务一直以来是我最薄弱的环节,也是我打算重新学习SQL Server的出发点,关于SQL Server中事务将分为几节来进行阐述,Always to review the basics. 事务简 ...
- SQL Server 之 事务与隔离级别实例讲解
SQL Server 之 事务与隔离级别实例讲解 SQL Server 实现了6个隔离级别来防止并发情况下,类似企图并发的访问或修改同一数据时问题的发生.本文将带你体验全部6个隔离级别.正如你接下来将 ...
随机推荐
- node-exporter常用指标含义,比如在prometheus中查询node_load1的指标数据
参考: https://blog.csdn.net/yjph83/article/details/84909319 https://www.gitbook.com/book/songjiayang/p ...
- 2019 满帮java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.满帮等公司offer,岗位是Java后端开发,因为发展原因最终选择去了满帮,入职一年时间了,也成为了面试官,之 ...
- MySQL基础-1
目录 数据库的基本概念 什么是数据库 为什么要使用数据库 数据库的分类 数据库的重要概念 数据库的安装 安装步骤 简单使用数据库 数据库的基本概念 什么是数据库 字面意思数据库就是存储数据的仓库,正常 ...
- CORS-跨域资源共享 解决跨域问题
1.什么是跨域? a.test.com 和 b.test.com 是两个不同的域,而处于安全机制考虑,JS只能访问与所在页面同一个域(相同协议.域名.端口)的内容,但是我们在项目开发时,经常遇到一个页 ...
- HTML 初始
HTML(Hyper Text Markup Language的缩写)中文译为“超文本标记语言”,主要是通过HTML标签对网页中的文本.图片.声音等内容进行描述. 一.HTML 骨架结构 每种语言都有 ...
- mybatis + oracle,出现ORA-01461:仅能绑定要插入LONG列的LONG值
1.这个异常是指,用户向数据库执行插入数据操作时,某条数据的某个字段值过长,如果是varchar2类型的,当长度超过2000,--4000(最大值)之间的时候,oracle会自动将该字段值转为long ...
- document.forms使用
定义:document.forms返回form表单的集合,包含了当前DOM结构中所有的form表单. 语法: . 获取当前DOM结构中的第一个form表单. document.forms[] . 获取 ...
- postgresql基于备份点PITR恢复
实验目的: 01.基于备份点直接恢复数据库 02.基于备份点后续增量wal日志恢复到特定的时间点 实验环境: centos7 postgresql9.5 01.安装postgresql9.5 post ...
- WebService基础概念
一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...
- Linux学习23-Xftp上传文件显示乱码问题
前言 当我们在windows新建一个文件,里面有中文时,使用Xftp上传到linux服务器上,会出现乱码问题. Windows的默认编码为GBK Linux的默认编码为UTF-8 Xftp上传文件乱码 ...