多表查询,事务以及DCL

目录

多表查询

笛卡尔积

多表查询的分类

事务

1.基本介绍

2.事务的四大特征

3.事务的隔离级别

DCL:控制权限

1.管理用户

2.授权


多表查询

笛卡尔积

           有两个集合A,B,取这连个集合的所有组合情况。

           完成多表查询要,消除无用数据。

多表查询的分类

         1.内连接查询:使用where条件消除无用数据

例子:SELECT * FROM emp,dept WHERE emp.dept_id =dept.id;

         2.外连接查询:

         3.子查询   

事务

1.基本介绍

     概念:如果有一个包含很多步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败

     事例:张三给李四转账500元

-- 0开启事物
START TRANSACTION;
-- 张三账户减去500
UPDATE account SET balance=balance-500 WHERE NAME='zhangsan';
-- 李四账户加500
UPDATE account SET balance=balance+500 WHERE NAME='lisi';
-- 执行没有问题
COMMIT;
-- 出问题了,回滚事务
ROLLBACK;

       MySQL数据库中事务自动提交

2.事务的四大特征

        1.原子性:不可分割的最小操作单位,要么同时成功,要么同时失败

        2.持久性:当事务提交或回滚后,数据库会持久保存数据

       3.隔离性:多个事务之间相互独立。

       4.一致性:实务操作前后数据总量不变。

3.事务的隔离级别

       概念:多个事务之间是相互独立的。但是多个事务操作统一数据,会引发一些问题,设置不同隔离级别就可以解决这些问题。

       隔离级别:

             1.read uncommitted:读未提交。

            2.read commited:读已提交(oracle)

            3.repeatable read:可重复读(mysql默认)

            4.serlializable:串行化

// 查询隔离级别
select @@tx_isolation;
// 设置隔离级别
set global transaction isolation level 级别字符串;
// 演示
set global transaction isolation level read committed;
start transaction;
--转账数据库
update account set balance =balance-500 where id=1;
update account set balance =balance+500 where id=2;

DCL:控制权限

1.管理用户

添加用户

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'

2.删除用户

DROP USER '用户名'@'主机名';

3.修改用户密码

UPDATE USER SET PASSWORD =PASSWORD('abc') WHERE USER='lisi';

4.查询用户:

SELECT*FROM USER;

2.授权

1.查询权限

// 查询权限
SHOW GRANTS FOR '用户名'@'主机名';

2.授予权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名'

GRANT SELECT,DELETE,UPDATE ON db3.account TO 'lisi'@'%';

// 给张三用户授予所有权限,在任意数据库任意表上

GRANT ALL ON db3.* TO 'zhangsan'@'localhost';

3.撤销权限

// 撤销权限

revoke 权限 on 数据库名.表名 from '用户名’@‘主机

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值