愛悠閑 > 以往的存儲過程代碼(部分)

以往的存儲過程代碼(部分)

分類: DataBase  |  標簽: 存儲,float,mysql,qq  |  作者: liupeng900605 相關  |  發布日期 : 2014-11-12  |  熱度 : 1523°
   /*
    編寫一段程序,將每種玩具的價格提高¥0.5,
    直到玩具的平均價格接近$24.5為止。此外,任何玩具的最大價格不應超過$53。
    */
    create procedure rise_price()
        begin 
          declare average float(4,2);
          declare maxV float(4,2);
          select avg(mtoyrate) into average from toys;
          select max(mtoyrate) into maxV from toys;
       when average <= 24.5 && maxV <= 53 do
          update toys set mtoyrate = mtoyrate + 0.5; 
          select avg(mtoyrate) into average from toys;
          select max(mtoyrate) into maxV from toys;
       end while;
       if average > 24.5 || maxV > 53 then
         update toys set mtoyrate = mtoyrate - 0.5;
       end;
       
      --執行時
      call rise_price();
       
      /*創建一個稱為prcCharges的存儲過程,它返回某個定單號的裝運費用和包裝費用。
      */
      --表格
      mysql> select corderno,mshippingcharges,mgiftwrapcharges from orders;
      +----------+------------------+------------------+
      | corderno | mshippingcharges | mgiftwrapcharges |
      +----------+------------------+------------------+
      | 000001   |                6 |             1.25 |
      | 000002   |                8 |                2 |
      | 000003   |               12 |                0 |
      +----------+------------------+------------------+
      9 rows in set
       
   
      create procedure prccharges(in orderno char(6),
             out shippingCharges float(4,2),out wrapCharges float(4,2))
             begin 
                select mshippingcharges into shippingCharges from 
                orders where corderno = orderno;
                select mgiftwrapcharges into wrapcharges from orders 
                       where corderno = orderno;
             end;
             
      --執行時命令
      call prccharges('000001',@pp,@qq);
      select @pp,@qq;
      
      --執行結果
      mysql> select @pp,@qq;
      +-----+------+
      | @pp | @qq  |
      +-----+------+
      | 6   | 1.25 |
      +-----+------+
      1 row in set
    
    
    /*創建一個稱為prcHandlingCharges的過程,它接收定單號并顯示經營費用。
      提示:經營費用=裝運費+禮品包裝費
    */
      create procedure prcHandLingCharges(in orderno char(6),
         out handlingCharges float(4,2))
            begin 
              declare ppp float(4,2);
              declare qqq float(4,2);
              call prccharges(orderno,ppp,qqq);
              set handlingCharges = ppp + qqq;  
            end;
       
      
      --執行時命令
     call prcHandLingCharges('000001',@qqqq);
     select @qqqq;
    
      --執行結果
      mysql> select @qqqq;
      +-------+
      | @qqqq |
      +-------+
      | 7.25  |
      +-------+
      1 row in set
    


快乐彩中奖说明