【数据库学习笔记】05 数据库的事务管理DCLDTL

2018.4.13

一.DCL操作 项目经理 DBA

管理用户
    创建用户,给与用户操作数据的权限

---DCL -- 创建一个用户,用户名为小月月,所在数据库主机地址是localhost,初始化密码

create user 'xiaoyueyue'@'localhost' identified by '1234567';

--授予新用户权限 --注意用户名和主机地址都用引号包含,并且中间用@分割。 grant all on javaee2018* to 'xiaoyueyue'@'localhost';

--刷新权限 flush privileges;

--取消授权 revoke all on javaee2018 * from 'xiaoyueyue'@'localhost';

--删除用户 drop user 'xiaoyueyue'@'localhost';

二.DTL 事务处理

银行
    从晓晨的账户里转账给我,20W。
    双方账户不能出现问题。
    
在MySQL中, 提供了一个撤销操作 

--DTL 案例
    --创建数据
    create table bank(
    	userID int primary key auto_increment,
    	money double(15,2),#double类型15位后面两位小数点
    	name varchar(30)
    );
    
    Insert into bank(money ,name) values(200000,'马云');
    Insert into bank(money ,name) values(10,'doubi');
    
    -- 出现业务逻辑上的问题,马云的账户少了10000,但是逗比多了
    update bank set money -100000 where userID = 1;
    update bank set money + 1000001 where userID = 2;
    
    --清空数据
    truncate table bank;
    
    --开启事务
    --方式1
    start transaction;  
    
    --方式2
    set autocommit = 0;
    
    --回滚,如果在操作的过程中发生了异常,可以回滚到开启事务之前,保护数据
    rollback;
    
    --提交开始事务之后的所有操作
    commit;


DCL用户管理

-- 创建一个用户,用户名为小月月,所在数据库主机地址是localhost,初始化密码

create user 'xiaoyueyue'@'localhost' identified by '1234567';

--授予新用户权限 
--注意用户名和主机地址都用引号包含,并且中间用@分割。
grant all on javaee2018* to 'xiaoyueyue'@'localhost';

--刷新权限
flush privileges;

--取消授权
revoke all on javaee2018 * from 'xiaoyueyue'@'localhost';

--删除用户
drop user 'xiaoyueyue'@'localhost';

DTL 事务管理

--创建数据
create table bank(
	userID int primary key auto_increment,
	money double(15,2),#double类型15位后面两位小数点
	name varchar(30),
);

Insert into bank(money ,name) values(200000,'马云');
Insert into bank(money ,name) values(10,'doubi');

-- 出现业务逻辑上的问题,马云的账户少了10000,但是逗比多了
update bank set money -100000 where userID = 1;
update bank set money + 1000001 where userID = 2;

--清空数据
truncate table bank;

--开启事务
--方式1
start transaction;  

--方式2
set autocommit = 0;

--回滚,如果在操作的过程中发生了异常,可以回滚到开启事务之前,保护数据
rollback;

--提交开始事务之后的所有操作
commit;

--使用命令行导入导出数据库
--要求是在非登录状态下操作。

--导出数据库
--到处的是一个.sql文件,里面包含了所有的数据库操作信息,
mysqldump -uroot -p 数据库名 >xxx.sql

--导入数据库 要求导入的指定数据库必须存在。
mysql -u root -p tempjavaee < javee1707.sql
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值