300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > MySQL数据库事务管理与存储过程

MySQL数据库事务管理与存储过程

时间:2020-02-11 20:23:11

相关推荐

MySQL数据库事务管理与存储过程

一.事务管理

1.什么叫做事务? 一件事(务)中包含多个操作,在计算机中是指数据库的一组操作,由一条或者多条sql语句组成。 2.事务的作用:避免误操作。 3.事务规则: 要么都执行成功,要么都执行不成功,即同时执行成功,同时不执行成功。 例如:银行转账:转入和转出操作语句必须保证都执行成功,只要其中有一个执行不成功,就会全部执行不成功,这也保证了银行转账时的安全性。 4.事务管理包含2部分内容: (1)开始事务: START TRANSACTION; (2)事务处理 事务处理包含2种:事务提交(commit;)和事务回滚(rollback;)。

sql语句在开始事务和处理事务之间: 例如: START TRANSACTION;

sql语句...

COMMIT;

5.事务的4个特性:

一致性:保证数据一致完整性的操作,误操作的事务会进行事务回滚(违反约束的数据操作)。

原子性:要么都执行成功,要么都不执行成功。

持久性:事务提交成功之后,修改的数据就会存储的在数据库中,哪怕数据库出现问题(逻辑问题)。

隔离性:每个事务都应该是同时操作的,不管是否在并发的状态(多个用户同时访问数据库,每个用户开启的事务都不能被其他用户的操作影响)。

6.事务的隔离等级:4种,如下表(4种隔离等级分别会产生的问题),MySQL默认Repeatable Read(可重读)隔离等级。

设置事务隔离等级:SET SESSION TRANSACTION ISOLATION LEVEL 隔离等级;

二.存储过程:提高sql语句的重用性,是一个sql语句的集合。

1.存储过程定义位置:定义在数据库中 2.存储过程作用:提高sql代码的重用性。 3.创建存储过程的语法: CREATE PROCEDURE 自定义名(参数) BEGIN 待执行的sql... END; 另:在dos命令下创建存储过程,需要按如下方式创建:

delimiter //:作用是将;(分号)转义为普通字符,使得//(双斜线)代替;(分号)的结束作用。 delimiter ;:作用是恢复;(分号)的默认的结束作用。 call two():表示执行存储过程two()(也称为函数two())。 4.存储过程的参数类型:3种:in,out,inout in:表示输入类型,从外部提供给存储过程使用的参数。 out:表示输入类型,存储过程内部使用的参数。 inout:可以输入也可以输出类型。

参数定义语法: 参数类型 自定义参数名 数据类型 例如:

使用in作为参数类型:

USE firstdb;

CREATE PROCEDURE three(in num CHAR)

BEGIN

SELECT * FROM users111 WHERE sex=num;

END;

执行存储过程:CALL three('女');

使用out作为参数类型:out类型的参数不接受传值,默认为null,只能在存储过程代码中设置它的值,外部不能设置它的值:

CREATE PROCEDURE four(in num char,out num1 varchar(20))

BEGIN

SELECT name into num1 FROM users111 WHERE sex=num;

END;

执行:call four('女',@num1);

select @num1;

select 列名 into 变量名:表示将查询结果赋值给变量。

@num1:用作接收存储过程赋值给变量的值,是一个变量。

CREATE PROCEDURE three(in num char,out num1 varchar(20),out num2 int)

BEGIN

SELECT name into num1 FROM users111 WHERE sex=num;

set num2=30;-- 设置值

END;

执行:CALL three('女',@num1,@num2);

select @num2;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。