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中动态创建的Panel无法改变颜色的解决办法(要把Panel的ParentBackground设为False)
    判断当前进程是否以管理员权限启动的
    在一个exe文件中查找指定内容,找到则返回起始位置, 否则返回0
    [置顶] 使用严苛模式打破Android4.0以上平台应用中UI主线程的“独断专行”
    删除IE缓存中指定的文件
    将窗体显示在 PageControl 上
    判断操作系统多久没有任何操作
    UrlDownloadFile, 线程下载文件, 带进度条
    用JSON 和 Google 实现全文翻译
    成为高效程序员的7个重要习惯
  • 原文地址:https://www.cnblogs.com/BookMiki/p/14169802.html
Copyright © 2011-2022 走看看