【事务使用的方式】
手动开启/自动开启
手动方式(显式):
#开启事务
start transaction;
#提交事务
commit;
#回滚事务
rollback;
自动方式(隐式):
#显示事务自动提交(off/on)
show variables like 'autocommit';
//数据的增删改查
#事务自动提交关闭
set autocommit=0;
【事务acid特性】
原子性:不可分割的工作单位,在事务操作中只有都发生
和都不发生
。
持久性:一个事务已执行对数据的改变是永久性,之后的操作和数据库故障不会对其影响。
隔离性:同时间只允许一个事务请求同一数据,并发执行不同事务无任何干扰。
一致性:事务开始前和结束后,数据库的完整性约束
没有被破坏,比如转钱。
数据库的完整约束性
- 数据完整性约束是一组完整性规则的集合。
- 规则包含:实体完整性、参照完整性、用户定义完整性。
- 实体完整性:规定表的每一行在表中是惟一的实体。
- 参照完整性:是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。
- 用户定义的完整性:用户定义的完整性即是针对某个特定关系数据库的约束条件。
- 可以省略-域完整性:表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。
完整性约束的类型:
与表有关的约束:是表中定义的一种约束。可在列定义时定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。
域(Domain)约束:在域定义中被定义的一种约束,它与在特定域中定义的任何列都有关系。
断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。
隔离性有4种级别
read uncommitted
(读未提交RU)会产生脏读现象read committed
(数据库的读以提交RC)产生不可重复读,幻读现象repeatable read
(可重复读RR-默认级别)避免脏读,不可重复读和幻读现象serializable
(串行化)类似队列一个一个执行,效率低最安全
设置隔离模式
默认为可重复读,一般情况下不会改模式
#查看事务隔离级别
select @@session.tx_isolation;
#设置当前mysql隔离级别
set session transaction isolation level read uncommitted;
#设置数据库系统的全局隔离级别
set global transaction isolation level read committed;
【其他】
mysql
简单操作
mysql -u root -p
#输入密码
--使用数据库
use 库名
--展示所有表
show tables;
--设置编码
set names gbk;
--查看表数据
select * from 表名;
评论