1.Mysql事务:
就是将一组的SQL语句放在一个批次去执行,要是一条语句出错,该批次的SQL语句都会取消执行。
Mysql事物处理只支持InnoDB和BDB数据表类型。
1.1 事物的ACID原则:
原子性(Atomic):
事物中的SQL语句要么全部执行,要么全不执行,不可能停滞在中间的某个状态,若在执行中发生了错误,会进行事物的回滚(RollBack)即从事物开始处重新执行,就像从来没有执行过一样。
一致性(Consist):
一致性是指事务必须使得数据库从一个一致性状态转变到另一个一致性状态,也就是说事务在执行前,执行后都必须处于一致性状态。
拿转账转账来说,开始时A,B账户上共有100元,然后A,B之间无论进行怎样的转账操作,结束后A,B账户上还是有100元,这就是一致性。
隔离性(Isolated):
当多个用户并发的访问数据库,比如都操作一张表,数据库给每个用户开启的事物之间不能互相干扰,多个并发事物要相互隔离。
持久性(Durability):
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
1.2 Mysql事物的实现方法:
/* 使用set语句来改变自动提交模式 */ SET autocommit = 0; /*关闭*/ SET autocommit = 1; /*开启*/ /* 注意 1.MySQL中默认是自动提交 2.使用事务时应先关闭自动提交 */ /*开始一个事务,标记事务的起始点*/ START TRANSACTION /*提交一个事务给数据库*/ COMMIT /*将事务回滚,数据回到本次事务的初始状态*/ ROLLBACK /*还原MySQL数据库的自动提交*/ SET autocommit =1; -- 保存点 SAVEPOINT 保存点名称 -- 设置一个事务保存点 ROLLBACK TO SAVEPOINT 保存点名称 -- 回滚到保存点 RELEASE SAVEPOINT 保存点名称 -- 删除保存点
1.3 Mysql事物的处理步骤:
首先关闭自动提交(set autocommit = 0)-----》开始一个事务,标记事务的起始点(start transaction)-----》提交事务(commit)/ 回滚(rollback)
还原Mysql数据库的自动提交(set autocommit = 1)
1.4 数据库事务的实例:
/* 课堂测试题目 A在线买一款价格为500元商品,网上银行转账. A的银行卡余额为2000,然后给商家B支付500. 商家B一开始的银行卡余额为10000 创建数据库shop和创建表account并插入2条数据 */ CREATE DATABASE `shop`CHARACTER SET utf8 COLLATE utf8_general_ci; USE `shop`; CREATE TABLE `account` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(32) NOT NULL, `cash` DECIMAL(9,2) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8 INSERT INTO account (`name`,`cash`) VALUES(‘A‘,2000.00),(‘B‘,10000.00) # 转账实现 SET autocommit = 0; START TRANSACTION; UPDATE account SET cash=cash-500 WHERE `name`=‘A‘; UPDATE account SET cash=cash+500 WHERE `name`=‘B‘; COMMIT; # rollback; SET autocommit = 1;
2.数据库的索引:
2.1索引的作用:
2.2索引的分类:
主键索引:
主键:某个属性组可以唯一的标识一条记录。
特点:
唯一索引:
作用:避免同一个表中,数据列中值的重复
和主键索引的区别:主键索引只能有一个,唯一索引可以有多个
常规索引:
作用:快速定位特定数据
注意:
全文索引:
作用:快速定位特定数据
注意:
kj
原文:https://www.cnblogs.com/xbfchder/p/11161175.html