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