通过DESC 表名 可以查看表的结构
通过SELECT * FROM 表名 查看表数据
1、事务概念,开启,提交和回滚事务
事务处理机制,能够保证在同一事务中操作具有同步性。
事务:就是针对数据库的一组操作,它可以由一条或者多条SQL语句组成,同一个事务的操作具备同步的特点,若其中一条语句无法执行,所有的语句将不会执行。
b用户向a用户转账100;
**需要提交COMMIT;**否则数据库再次登录,将没有转账完成。
回滚事务:针对事务还没有提交,此时,利用ROLLBACK可以取消事务
2、事务的四种隔离级别
1、脏读
b向a转账
设置隔离级别进行脏读演示,a向b转账,先设置b的隔离级别为读取未提交。
对于MySQL默认的隔离级别为可重复读,REPEATABLE READ,该级别是可以避免脏读,因此需要设置为READ UNCOMMITTED(读未提交的)
(a)在b账户中设置级别
(b)在b账户中开启一个事务,查询余额信息
©打开另一个事务,窗口,在账户a中进行转账
(d)在账户b中看,查看余额信息
————————————————————————
重新设置账户b的隔离级别,read committed
“重新打开窗口
mysql -u root -p
123456
use chapter06
”“”
—a账户,重新转账
update acount set money=money-100 WHERE name=‘a’;
update acount set money=money+100 WHERE name=‘b’;
如下b账户
如下为a账户
(2)不可重复读
事务中两次查询结果不一致,在查询过程中其他事务做了更新操作
脏读是读取前一个事务未提交的脏数据
不可重复度实在事务中重复读取了别的线程已经提交数据
a向b转账,设置b的隔离级别为 REPEATABLE READ,这样在a中操作转账后,b中的结果保持一致,前后查询
(3)幻读( REPEATABLE READ可以避免幻读)
它是指在一个事物内两次查询中数据条数不一致,同样是两次查询过程,但是幻读是由于其他事务做了插入记录的操作,导致记录数有所增加。
可以重新设置b的级别为READ COMMITTED
(4)可串行化
3、创建存储过程
由于在开发中,经常用到重复使用某一功能的情况,引入了存储过程;存储过程就是将一条或者多条SQL语句的集合,当对数据库进行一系列复杂操作是,存储过程可以将这写复杂操作封装成一个代码块,以便重复使用。
创建存储过程用到的变量,光标,流程控制等。
(1)创建存储过程
(2)变量的使用
(3)定义条件和处理程序
(4)光标的使用
(5)流程控制的使用
4、存储过程的使用
调用,查看,修改和删除存储过程
实例:存储过程的应用
1、创建一个stu表
2、创建一个存储过程
3、调用存储过程
创建存储过程能够获取表stu中的记录数和id之和