栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

视图和事务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

视图和事务

Views  本身不存储数据,是虚拟表
  • 视图就是一个虚拟表,可以当成普通表来用
  • create view 视图名  as 
    select * from employees 
    where department_id = 50

     通过视图更改的数据 也对原表进行了修改 

  • 通过视图还可以对一段非常复杂的查询过程进行封装.

  • 视图本质就是一个被提前封装的一个查询; 从结果来看就是一张表.视图新增的表无法影响原表

       
事务

和开发紧密相关的数据库重要概念

  • 逻辑上相关的一组操作DML语句;作为一个整体向数据库服务器进行提交,要么全部成功要么全部失败.不允许出现部分成功的情况 ;否则会导致严重的事故
  • 引入事务的机制来保证逻辑上相关的一批sql一起执行或不执行
  • 默认情况下一条DML语句代表一个事务      
  • 1.关闭事务的自动提交 , SET @@autocommit=0
  • 2.STRAT TRANSACTION 开启一个事务   另一种写法:  begin
    • DML  sql语句
  • 3.提交事务  COMMIT 全部执行成功,结束事务
    • DML sql语句出错
  • 4.有任意一条执行失败;回滚ROLLBACK  回滚到sql语句执行之前
  • JDBC里写法
  • 事务的四大特性:ACID
    • 原子性:undolog:日志文件,通过日志回滚到日志初始状态
    • 一致性:事务执行的前后表中的数据从一种一致状态到另一种一致状态
    • 持久性: 一个事务在提交commit之后,对表中数据的修改必须永久保存到数据库中

      • 在mysql中,为了实现持久性;引入了另外一个日志:redolog;

       

    • 隔离性:一个事务在执行过程中不能受到另外事务的影响;
      • 事务四大隔离级别:
        • 隔离级别越高,并发效率就越低;事务受影响性越低
        • 串行化级别最高
        • 读未提交 read uncommitted  一个事务可以读取到另一个事务未提交的数据;(出现脏读)
        • 读已提交 read committed  一个事务只能读到另一个事务提交过的数据,但是出现不可重复读的问题 (一个事务执行期间对某条数据先后读取结果不一致 )
        • 可重复读 repeatable read  可以实现一个事务中先后读取的同一份数据的结果一致,解决了不可重复读的问题;(但会出现"幻读"现象 这个事务可以读到另外线程的执行完的结果,造成预期结果不一致) 
        • 串行化 serializable  类似于线程锁,对于同一张表;必须等一个事务完成后,其它事务才能运行
        • mysql默认隔离级别:可重复读   oracle默认为读已提交
      • 设置隔离级别:set session transaction isolation level +级别 
      • 查询隔离查询: @@tx_isolation

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677967.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号