事务
start transaction : 开启事务
-- 开启事务之后,执行完sql语句,将会存储在一个临时的空间
commit : 提交事务
-- sql语句执行完成,判断其内数据是否全部执行成功,
若执行成功,数据无异常,则将临时空间内的数据存入数据库
rollback : 回滚事务
-- sql语句执行失败,则将数据返回至开启事务之前
事务提交的两种方式:
1、自动提交
表的增删改,就是自动提交
insert update delete这些
2、手动提交
需先开启事务,在判断执行结果,最后决定是否提交
修改事务默认提交方式
1、查看事务提交方式
--> select @@autocommit; -- 1:自动提交 0:手动提交
2、手动提交方式
--> set @@autocommit = 0; 修改为手动提交
事务的四大特征
原子性:是不可分割的最小操作单位,要么同事成功,要么同时失败
持久性:如果事务一单提交或者回滚,数据库的数据会持久的更新
隔离性:多个事务之间,相互独立
一致性:事务操作前后数据总量不变
事务的隔离级别
概念:多个事务之间是相互隔离的,但是多个事务操作同一批数据,
则会引发一些问题,设置不同的隔离级别,就可以解决这些问题
1.脏读,一个事务读取到另一个事物没有提交的数据
2.不可重复读取:同一个事务中,两次读到的数据不一致
3.幻读:一个事务操作表中的所有数据,另一个事物添加了一条数据,则第一个事物查到了自己未修改的事物
MySQL四种隔离级别
read uncommitted; -- 读未提交
产生的问题 : 脏读,不可重复读,幻读
read committed; -- 读已提交
产生的问题 : 不可重复读,幻读
repeatable read; --课重复读
产生的问题 : 幻读
serializable : 串行
产生的问题 : 无
Mysql设置隔离级别
查询
select @@tx_isolation;
设置
set global transaction isolation level 级别字符串;
------------------------------------------------------------------------------------------------
DCL 数据库控制语句
1.添加用户
--> create user 'user_name'@'login_computer_ip' identified by 'password';
2.删除用户
--> drop user 'user_name'@'主机名';
3.修改用户密码
method_1
--> update user set password = password('new_password') where user = 'user_name';
-- password(): 相当于一个加密的方法,其内所填写密码必须用引号引用
-- password : 这是密码字段
method_2
--> set password for 'user_name'@'computer_name(id)' = password('new_password');
--> flush privileges;
-- 刷新
4.查询用户
--> use mysql ; -- 使用mysql数据库
--> select * from user; -- 查询所有用户数据
--> select user from user; -- 查询所有用户名字
5.忘记了root密码 cmd操作方法
--> net stop mysql -- 停止服务
--> mysqld --skip-grant-tables --启动mysql无验证登陆程序
该服务启动后,会卡在这个页面不动ctrl + C 也不管用
--> 启动另一个cmd窗口
输入 mysql 直接回车,然后修改密码
6.权限管理
-- 查询
show grants for 'user_name'@'computer_name(id)';
-- 授予权限
grant 权限列表 on 数据库.表 to 'user_name'@'computer_name(id)';
-- 撤销权限
revoke 权限列表 on 数据库.表 from 'user_name'@'computer_name(id)';
MySQL>事务四大特征、隔离级别、DCL创建用户、删除用户、权限管理
猜你喜欢
转载自blog.csdn.net/weixin_43309893/article/details/116598288
今日推荐
周排行