@Transactional
代码的事务注解
原子性(Atomicity) | 每个事务都是一个整体,不可再拆分,事务中所有的SQL 语句要么都执行成功, 要么都失败。 |
一致性(Consistency) | 事务在执行前数据库的状态与执行后数据库的状态保持一致。如:转账前2 个人的 总金额是2000,转账后2 个人总金额也是2000 |
隔离性(Isolation) | 事务与事务之间不应该相互影响,执行时保持隔离的状态。 |
持久性(Durability) | 一旦事务执行成功,对数据库的修改是持久的。就算关机,也是保存下来的。 |
手动提交事务的SQL语句
start transaction 开始事务的sql语句
commit 提交事务的sql语句
rollback 回滚事务的sql语句
手动提交事务
提交事务 ——> 执行sql语句 ——> 成功提交事务
提交事务 ——> 执行sql语句 ——> 失败回滚事务
回滚点
设置回滚点的sql语句 savepoint 名字
回到回滚点的sql语句 rollback to 名字
事务的隔离级别
脏读 | 一个事务读取到了另一个事务中尚未提交的数据 |
不可重复读 | 一个事务中两次读取的数据内容不一致,要求的是一个事务中多次读取时数据是一致的,这 是事务update 时引发的问题 |
幻读 | 一个事务中两次读取的数据的数量不一致,要求在一个事务多次读取的数据的数量是一致 的,这是insert 或delete 时引发的问题 |
MySQL 数据库有四种隔离级别
上面的级别最低,下面的级别最高。“是”表示会出现这种问题,“否”表示不会出现这种问题。
级别 名字 隔离级别 脏读 不可重复读 幻读 数据库默认隔离级别 | ||||||
1 | 读未提交 | read uncommitted | 是 | 是 | 是 | |
2 | 读已提交 | read committed | 否 | 是 | 是 | Oracle 和SQL Server |
3 | 可重复读 | repeatable read | 否 | 否 | 是 | MySQL |
4 | 串行化 | serializable | 否 | 否 | 否 |
mysql数据库结课总结
共有5大项
1,建库建表--字符集,排序,id,自增长
2,单表操作--增删改查 select INSERT UPDATE DELETE
3,多表查询--left joinRIGHT JOIN INNER JOIN
4,子查询 :
单行单列 : select * from 表名 where 查询条件 (select 条件数据名 from 表名);
单行多列 : select * from 表名 WHERE 查询条件 in (select 条件数据名 from 表名 where 查询条件);
多行多列(建立空间表) :select * from 查询字段 (select 条件数据名 from 表名 where 查询条件) 表名 where 查询条件
5,聚合函数。
一,子查询结果只要是单列,则在WHERE 后面作为条件
二,子查询结果只要是多列,则在FROM 后面作为表进行二次查询