事务概念
事务:所谓的事务指的是用户定义的一个数据库操作的集合、要么这些操作全做、要么这些操作全不做,是一个不可分割的单位。在关系型的数据库中、事务可以是一条SQL语句、也可以是一组SQL语句、也可以是整个程序。
BEGIN TRANSACTION;
COMMIT;
ROLLBACK;
BEGIN TRANSACTION;
事务通常以开始、以COMMIT或者ROLLBAKC结束.COMMIT表示提交,将事务中所有对数据库的更新写会到磁盘的物理数据库中,事务正常结束。
ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。
MySQL事务的四大特性
事务的四大特性值得是ACID性、也就是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).
原子性:指的是事务是一个原子的操作单位、要么这些操作都做、要么都不做
一致性:指的是事务开始之前和事务之后数据库的完整性没有破坏、一致性包括两个方面的内容一个是数据的一致性、一个是约束的一致性。也就是事务的执行的结果必须是从一个的一致性到另一个一致性的状态。
隔离性:指的是一个事务的执行不能被其他的事务干扰、即一个事务内部对数据的操作以及使用对其他并发的事务是隔离的。由锁机制和MVCC来实现的
持久性:指的是一个事务一但提交的话、那么这个事务对数据库的改变是永久性的、后续的操作或者故障不能对其有任何的影响、数据不会丢失。
事务是并发控制和恢复的基本的单位,保证事务的ACID性是事务管理的重要的任务。
事务遭到破环的两个原因:
1.多个事务并行运行的时候、不同的事务之间的交替的操作
2.事务在运行的过程中被强行的停止
这就是数据库管理系统中的恢复机制和并发控制机制的责任。
查看函数和存储过程的:
show create function 函数名
show create procedure 存储过程名
删除函数和存储过程:
drop function 函数名
drop procedure 存储过程名
函数
区别:
存储过程: 可以有多个或者0个返回值
适合与做批量的插入、更新操作
函数:只能有一个返回值
适合做处理数据后的返回结果
create function 函数名(参数列表)returns 返回类型
begin
函数体
end
注意:
函数体必需要有return语句
return 语句的位置随意,一般都放在函数体的最后一行
使用delimiter语句设置结束标记
如果函数体只有一行的话,可以省略begin
end
调用函数:
select 函数名(参数列表)
存储过程
一组预先编译好的sql的语句的集合,类似与批处理语句;
提高了代码的重用性
简化了操作
减少了编译的次数并且减少了和服务器链接的次数,提高了效率。
create procedure 存储过程名(参数列表)
begin
存储过程体(一组合法的sql语句)
end
参数列表包含三部分:
IN 参数名 参数的类型
该参数可以作为输入,也就是该参数需要调用方传入值
OUT 参数名 参数类型
该参数可以作为输出,也就是该参数可以作为返回值
INOUT 参数名 参数类型
该参数既可以作为输入又可以作为输出
调用存储过程:
call 存储过程名(实参)