1.事务的基本介绍
1.概念
如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。
2.操作
1.开启事务:start transaction
2.回滚:Roolback
3.提交:commit
mysql数据库事务会默认提交
执行一条DML语句会自动提交一次事务
手动提交:
oracle 数据库默认是手动提交事务
需要先开启事务,再提交
修改事务的默认提交方式 set @@autocommit=0;
查看事务的提交方式 Select @@autocommit; 1表示自动 0为手动
2.事务的四大特征
1.原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败
2.持久性:当事务提交或回滚后,数据库会持久化的保存数据。
3.隔离性:多个事务之间。相互独立。
4.一致性:事务操作前后,数据总量不变。
3.事务的隔离级别
多个事务之间隔离的,相互独立的,如果多个事务操作同一批数据,会发生一些问题
1.脏读:一个事务,读取到另一个事务中没有提交的数据
2.不可重复读(虚读):在同一个事务中,两次读取到的数据不一样
3.幻读:一个事务操作数据表中所有记录,另一个事务添加了一条数据,则第一个事务
查询不到自己的修改.
隔离级别
1.读未提交 :脏读、不可重复读、幻读
2.读已提交:不可重复读、幻读
3.可重复度:幻读
4.串行化
数据库查询隔离级别
select @@tx_isolation
数据库隔离级别设置
set global transaction isolation level 级别字符串
dcl: 管理用户,授权
管理用户、授权
1.管理用户:
语法:create user '用户名'@'主机名' identified by '密码';
2.删除用户:
语法:drop user '用户名'@'主机名';
3.修改用户:
1.切到mysql数据库 USE mysql
2.查询user表 select * from user;
4.修改密码:
update user set password=password('新密码') where user='用户名';
使用无验证启动mysql服务:mysqld --skip-grant-tables
2.权限管理
1.查询权限:
show grants for '用户名'@'主机名';
show grants for 'lisi'@'%';
2.授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
3.撤销权限
revoke 权限列表 on 数据库名.表名 from