zoukankan      html  css  js  c++  java
  • 第六章(管理数据库事务)

    这两天周末,各种事情都来,一个玩得很好的学长回来了。然后我的一个室友过生请吃饭,我们都是自主烧烤,所以周末就显得有点忙。最重要的是,我感冒发烧了,吃啥都没胃口。

    复习的有点怠慢。


    先复习一下代码,看看凭记忆记住的

    select * from List
    where NickName is null;
    
    select * from List
    where NickName is not null;
    
    select * from List
    where Age in (34,13);
    
    select * from List
    where Age>10 and Age<34;
    
    select * from List
    where Age between 20 and 40;
    
    select Age , COUNT(*) from List
    group by Age;    --分组 显示年龄
    
    --聚合函数 max min avg sum 不能出现在where当中 必须使用Having
    select Age , COUNT(*) from List
    group by Age
    Having COUNT(*)>1;
    -- Having是对分组后丶信息经行过滤 能用的列和select的列是一样的  5数据分组
    
    select top 3 * from List
    order by Age DESC;
    
    select top 3 ID  from List
    order by Age DESC;
    
    select top 3 * from List
    where ID not in (select top 3 ID  from List
    order by Age DESC)
    order by Age;
    
    select Age,ID,Name from List with(nolock); 
    --with(nolock)其目的就是查询是不锁定表,
    --从而达到提高查询速度的目的。
    --1:数据量特别大的表,牺牲数据安全性来提升性能是可以考虑的;
    --2:允许出现脏读现象的业务逻辑,反之一些数据完整性要求比较严格的场景就不合适了,像金融方面等。
    --3:数据不经常修改的表,这样会省于锁定表的时间来大大加快查询速度。
    --4、当使用NoLock时,它允许阅读那些已经修改但是还没有交易完成的数据。
    --因此如果有需要考虑transaction事务数据的实时完整性时,使用WITH (NOLOCK)就要好好考虑一下。
    
    select Age,ID,Name,ROW_NUMBER()
     over(order by Age DESC)as 字段编号 
    from List with(nolock);

    事务(transaction)的概念是对数据库执行的一个操作单位。事务4大属性:
    1   原子性(Atomicity):事务是一个完整的操作。
    2   一致性(Consistency):当事务完成时,数据必须处于一致状态。
    3   隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的。
    4   持久性(Durability):事务完成后,它对于系统的影响是永久性的。

    它包含了3个基本操作命令:(1):Commit 提交 (2):Rollback  (3)SavePoint

    只是了解了Commit命令,所以就单说一下对它的认识。COMMIT命令用于把事务所做的修改保存到数据库,它把上一个COMMIT或ROLLBACK命令之后的全部事务都保存到数据库。用commit 这个命令,可以很好的预防 您有时辛辛苦苦对数据进行的操作,最后却未写入SQL后台,这样工作效率就降低了。在SqlServer中需要使用这种格式

    begin transaction;
    insert into emp(empno,ename) values(2,'dan');
    commit transaction;

    Rollback是针对事务的,你如果没有在执行语句之前开启事务,那么无法rollback;

    1 --开启事务
    2 begin tran
    3 --执行操作
    4 update Accounts_UsersExp set TelPhone=123456 where userid=14
    5 --执行错误事务回滚
    6 rollback
    7 --如果正确进行事务提交
    8 commit

    一套带走的。

  • 相关阅读:
    tensorflow_知识点
    Win10 1803 谷歌内核浏览器出现假死现象的解决方法汇总
    今日笑话
    留存率例子(待优化)
    安装ODOO13
    freepascal获取进程列表
    vba给图片添加logo
    wps中开始支持javascript了
    获取本地ip
    判断素数
  • 原文地址:https://www.cnblogs.com/Audient/p/7503311.html
Copyright © 2011-2022 走看看