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

    一套带走的。

  • 相关阅读:
    VS 2008潜在强大的功能:提取EXE文件中的ICO等资源
    园友们注意:淘宝网上QQ会员 4钻 3元 等都为骗子行为
    Comet Async Process Request Handler
    WCF(Sender) to MSMQ to WCF(Receiver)
    ASP.NET Web Form GridView DetailsView Query Edit
    WCF NetTcp AsyncQueue Service
    Xml CDATA 序列化
    Sync Invoke Remoting Async Invoke
    .Net 4.0 Remoting ConcurrentQueue
    Socket Async Receive Data to LinkedList Buffer (telnet proxy server)
  • 原文地址:https://www.cnblogs.com/Audient/p/7503311.html
Copyright © 2011-2022 走看看