MySql入门

sql语句中关键字的执行顺序
from - where -group by - having - select - distinct-order by-limit

关键字之having
用于group by后,order by前,
select * from table where xx group by xx having Max(xx) order by xx

关键字之limit
select * from table limit N; N表示从头开始,取N个数据;
select * from table limit M,N; M表示从第M行开始(不包括M),取N个数据;

MySql的存储引擎:
MyIsam:
B+Tree结构
不支持事务

Innodb:
B+Tree结构
支持事务

事务ACID
A:原子性:整个事务是不可分割的,事务中的操作必须同时成功,否则即使sql语句执行成功,也会回滚到sql执行前的状态
C:一致性:事务不能破坏关系数据的完整性和业务数据的一致性,比如银行转账,转账前后两个账户的钱必须对的上
I:隔离性:在并发情况下,不同事务操作同一个数据,都有自己完整的数据空间,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
①脏读:是指一个事务读取了另一个事务没有提交的数据。
②不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不相同。
D:持久性:只要事务成功,对数据库的操作必须永久性的保存下来

事务的隔离级别:
丧失事务性的三种情况
①脏读: 读到另一个事务未提交的数据;
②不可重复读(行影响): 一个事务内,读取了某个数据后,另一个事务commit,再次读的时候数据前后不一样()
③幻读(表影响): 一个事务内,读取表数据后,另一个事务commit,再次读的时候数据前后不一样(A存入账户100块钱,但是事务未提交,另一个事务统计账户余额为0,A存钱事务提交后再次查询余额变成了100,两次查询结果不一致)

读未提交(READ-UNCOMMITTED):最低等级的隔离级别,允许读取未提交的数据,可能会出现脏读幻读和不可重复读

读已提交(READ-COMMITTED):允许读取并发事务提交的数据,可能会出现幻读和不可重复读(Oracle默认的隔离级别)

可重复读(REPEATABLE-READ):对同一个字段多次读取是一致的,可能会出现幻读(MySQL默认的隔离级别)

可串行化(SERIALIZABLE):最高的隔离级别,可防止幻读脏读和不可重复读,但效率低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值