十二:事务与视图

1.事物的属性:ACID

  A:原子性,相当于捆绑,把一批操作,当成一个操作,要么一起成功,要么一起失败

  C:一致性,例如转账,最后的总额是不变的

   I: 隔离性,一个事务的执行不受其他事务的干扰

  D: 持久性,一旦提交就是永久性改变,直接改变数据库的数据

2.事物的使用

  1.隐式(自动)事务:没有明显的开启和结束,本身就是一条事务可以自动提交,比如insert update delete

  2.显示事务:具有明显的开启和结束

 

  使用显示事务:

    1.开启事务

      set  autocommit=0;

      start trabsaction;#可以省略

      SQL语句....

    2.0 设置回滚点

      savepoint  回滚点名; 

    2.结束事务

      提交 :commit;

      回滚: rollback

        回滚到指定地方:rollback to 回滚点名;

3.并发事务

  1.事务的并发问题是如何发生的?

    多个事务同时操作同一个数据库的相同数据时

  2.并发问题类型

    1.脏读:一个事务读取了其他事务还没有提交的数据,读到的是其他事务更新的数据

    2.不可重复读: 一次事务多次读取,结果不一样

    3.幻读:一个事务读取了其他事务还没有提交的数据,只是读到的是其他事务 ”插入“ 的数据

  3.解决并发问题

    通过设置隔离级别

  4.隔离级别

    read uncommitted;读未提交        三种问题都会发生

    read committed;读提交       脏读会被隔离

    repeattable read;可重复读      脏读和可重复读被解决(mysql默认)

    serialirable:串行化         都解决,但是效率低

 

二、视图

1.含义,mysql5.1版本出现的新特性,本省是一个虚拟表,他的数据来自于表,通过执行时动态生成

  好处:简化sql语句,提高了sql的重用性、保护基表的数据提高了安全性

2.创建

  create view 视图名

  as

  SQL语句

3.修改

  方式一:create or replace view 视图名

      as

      SQL查询语句

4.删除

  drop view 视图名1,视图名2.....;

5.查看

  desc 视图名;

  show create view 视图名;

6.使用

  注意视图一般用于查询而不是用于更新,所以一下特点的视图都不允许更新

 

7.视图和表的对比

  视图 占用物理内存小只保留sql逻辑   一般用于查询

  表    保存实际的数据                         增删改查

 

posted @ 2020-12-21 20:27  晴晴小可爱的小弟  阅读(91)  评论(0编辑  收藏  举报