zoukankan      html  css  js  c++  java
  • 十二:事务与视图

    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逻辑   一般用于查询

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

  • 相关阅读:
    Delphi数据库处理
    cxgrid的FINDPANEL编程
    LESS简介
    LESS速查
    $(window).load(function() {})和$(document).ready(function(){})的区别
    CSS中单位px和em,rem的区别
    父元素与子元素之间的margin-top问题
    CSS垂直居中精华总结
    Font Awesome使用指南
    Sublime3安装过程及常用插件安装及常用快捷键
  • 原文地址:https://www.cnblogs.com/BookMiki/p/14169802.html
Copyright © 2011-2022 走看看