数据库学习-事务管理作业示例【带源码】

简介: MySQL数据库事务管理习题示例,包含源码,能建立起基本概念

 目录

一、新建数据库

二、事务的提交

1.事务的隔离级别

1.1脏读

1.2演示脏读

1.3设置b账户中事务的隔离级别

1.4.验证是否出现脏读

2.不可重复性

2.1演示不可重复性

2.2设置b账户中事务的隔离级别

2.3验证是否出现不可重复读

3.幻读

3.1设置b账户中事务的隔离级别

3.2演示幻读

3.3重新设置账户的隔离级别

3.4验证是否出现幻读

4.可串行化

4.1设置b账户中事务的隔离级别  

4.2演示可串行化

4.3提交事务


一、新建数据库

image.gif编辑

create database chapter06;

use chapter06;

create table account(

   -> id int primary key auto_increment,

   -> name varchar(40),

   -> money float

-> );

insert into account(name,money) values

   -> ('a',1000),

-> ('b',1000);

image.gif编辑

image.gif编辑

二、事务的提交

image.gif编辑

start transaction;

update account set money=money-100 where name='a';

-> update account set money=money+100 where name='b';

commit;/

image.gif编辑

image.gif编辑

image.gif编辑

update account set money=money+100 where name='a';

-> update account set money=money-100 where name='b';

image.gif编辑

image.gif编辑

select * from account;

image.gif编辑

image.gif编辑

update account set money=money+100 where name='a';

   -> update account set money=money-100 where name='b';

-> commit/

image.gif编辑

image.gif编辑

image.gif编辑

start transaction/

update account set money=money-100 where name='a';

-> update account set money=money+100 where name='b';

image.gif编辑

rollback;/

image.gif编辑

1.事务的隔离级别

image.gif编辑

1.1脏读

image.gif编辑

image.gif编辑

set session transaction isolation level read uncommitted;

select @@transaction_isolation;

image.gif编辑

1.2演示脏读

image.gif编辑

image.gif编辑

image.gif编辑

start transaction;

   -> update account set money=money-100 where name='a';

   -> update account set money=money+100 where name='b';

-> /

image.gif编辑

image.gif编辑

image.gif编辑

1.3设置b账户中事务的隔离级别

image.gif编辑

set session transaction isolation level read committed;

image.gif编辑

1.4.验证是否出现脏读

image.gif编辑

image.gif编辑

image.gif编辑

start transaction;

   -> update account set money=money-100 where name='a';

   -> update account set money=money+100 where name='b';

-> /

image.gif编辑

image.gif编辑

image.gif编辑

2.不可重复性

image.gif编辑

2.1演示不可重复性

image.gif编辑

start transaction;

select * from account;

image.gif编辑

image.gif编辑

update account set money=money-100 where name='a';

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

2.2设置b账户中事务的隔离级别

image.gif编辑

set session transaction isolation level repeatable read;

image.gif编辑

2.3验证是否出现不可重复读

image.gif编辑

image.gif编辑

image.gif编辑

update account set money=money-100 where name='a';/

image.gif编辑

image.gif编辑

image.gif编辑

3.幻读

image.gif编辑

3.1设置b账户中事务的隔离级别

image.gif编辑

set session transaction isolation level read committed;

image.gif编辑

3.2演示幻读

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

insert into account(name,money) values

-> ('c',1000);

image.gif编辑

image.gif编辑

image.gif编辑

3.3重新设置账户的隔离级别

image.gif编辑

set session transaction isolation level repeatable read;

image.gif编辑

3.4验证是否出现幻读

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

insert into account(name,money) values('d',1000);

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

4.可串行化

4.1设置b账户中事务的隔离级别  

image.gif编辑

set session transaction isolation level serializable;

image.gif编辑

4.2演示可串行化

image.gif编辑

image.gif编辑

image.gif编辑

insert into account(name,money) values('e',1000);

image.gif编辑

4.3提交事务

image.gif编辑

image.gif编辑

image.gif编辑

相关文章
|
1月前
|
SQL 存储 关系型数据库
【MySQL 数据库】11、学习 MySQL 中的【锁】
【MySQL 数据库】11、学习 MySQL 中的【锁】
76 0
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】4、MySQL 事务学习
【MySQL 数据库】4、MySQL 事务学习
44 0
|
21天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
|
9天前
|
关系型数据库 API 数据库
Django中的数据库事务管理:确保数据一致性
【4月更文挑战第15天】Django框架提供强大的数据库事务管理,确保ACID属性,保证数据一致性和完整性。文章深入讨论了Django事务管理,包括使用`@transaction.atomic`装饰器和`transaction.atomic()`上下文管理器手动控制事务,以及低级API进行精细管理。注意避免长时间事务、选择合适隔离级别、正确处理异常及了解数据库特性。掌握这些技巧对构建可靠Web应用至关重要。
|
1月前
|
SQL 数据库 内存技术
学习数据库要掌握的54条SQL查询语句
学习数据库要掌握的54条SQL查询语句
14 0
|
1月前
|
SQL NoSQL 数据库
深入浅出:微服务架构下的数据库事务管理
【2月更文挑战第12天】 在当今微服务架构日益流行的背景下,如何有效地管理跨服务的数据库事务成为了开发与维护中的一大挑战。本文旨在探讨微服务环境下数据库事务管理的关键技术和策略,包括但不限于分布式事务的基本概念、常见的解决方案(如两阶段提交、补偿事务等),以及这些方案在实际应用中的优缺点比较。通过深入浅出的方式,本文希望能够帮助读者更好地理解并应对微服务架构下的数据库事务管理问题,进而提升系统的稳定性和可靠性。
|
1月前
|
存储 PHP Apache
使用CFimagehost源码搭建无需数据库支持的PHP免费图片托管私人图床
使用CFimagehost源码搭建无需数据库支持的PHP免费图片托管私人图床
|
1月前
|
存储 SQL 关系型数据库
【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】
【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】
57 0
|
2月前
|
SQL 关系型数据库 MySQL
MySQL数据库学习(小白一文掌握Mysql)
MySQL数据库学习(小白一文掌握Mysql)
44 0
|
5天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
35 2

热门文章

最新文章