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个隔离级别.正如你接下来将 ...
随机推荐
- jQuery中使用Ajax获取JSON格式数据示例代码
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSONM文件中包含了关于“名称”和“值”的信息.有时候我们需要读取JSON格式的数据文件,在jQuery中 ...
- python自动备份阿里云数据库binlog
#coding:utf8from aliyunsdkcore import clientfrom aliyunsdkrds.request.v20140815 import DescribeBacku ...
- Django---图书管理系统,一对多(外键设置),__str__和__repr__的区别,进阶版项目说明简介.模版语言if ... else ..endif
Django---图书管理系统,一对多(外键设置),__str__和__repr__的区别,进阶版项目说明简介.模版语言if ... else ..endif 一丶__str__ 和 __repr__ ...
- hadoop中HDFS的NameNode原理
1. hadoop中HDFS的NameNode原理 1.1. 组成 包括HDFS(分布式文件系统),YARN(分布式资源调度系统),MapReduce(分布式计算系统),等等. 1.2. HDFS架构 ...
- android studio学习----打包
Gradle打包APP签名 默认情况下,debug被配置成使用一个debug keystory.debug keystory使用了默认的密码和默认key及默认的key密码.debug构建类型会自动使用 ...
- Cheat Engine 基本用法
打开游戏 当前血量2620 打开Cheat Engine 扫描2620 掉点血 再次扫描2600 此时,会根据第一次扫描结果,再次扫描 扫描成功 将数据放到修改区,点击箭头 修改数据 双击Value进 ...
- redis-存储命令
一.String类型: 1.赋值/取值 set key valueget key 2.设置/获取多个键值 mset key1 value1 key2 value2 … mget key1 ke ...
- day 28
目录 操作系统发展史 穿孔卡片 联机批处理系统 脱机批处理系统 多道技术(基于单核情况下研究) 单道 多道技术 并发与并行 进程 程序与进程 进程调度 先来先服务调度 短作业优先调度 时间片轮转法 分 ...
- Nginx下隐藏index.php
在用NGINX搭建web网站时遇到一个问题,那就是除了网站的首页能够正常打开,其他的子网站都打不开,显示找不到文件.但是如果你在网址后面加上index.php,子网站就又可以打开了.那么我们怎么才能不 ...
- FRP 中文文档
https://github.com/fatedier/frp/blob/master/README_zh.md README | 中文文档 frp 是一个可用于内网穿透的高性能的反向代理应用,支持 ...