中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是mysql代碼執行結構

發布時間:2020-08-01 14:35:11 來源:億速云 閱讀:131 作者:小豬 欄目:MySQL數據庫

小編這次要給大家分享的是什么是mysql代碼執行結構,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

本文內容:

  • 什么是代碼執行結構
  • 順序結構
  • 分支結構
  • 循環結構

 首發日期:2018-04-18


什么是代碼執行結構:

  • 這里所說的代碼執行結構就是多條sql語句的執行順序。
  • 代碼執行結構主要用于觸發器、存儲過程和函數等存儲多條sql語句中。

順序結構:

  • 順序結構就是從上到下依次執行sql語句
  • 一般默認情況下都是順序結構

分支結構:

  • 分支結構的執行是依據一定的條件選擇執行路徑,它會依據我們給定的條件來選擇執行那些sql語句
  • mysql中分支結構只有if-else:
    • 語法:
      if 條件 then
       sql語句
      [elseif 條件 then
       sql語句]
      [else
       sql語句]
      end if;
         
    • 示例:
      -- 
      create table pass(id int primary key auto_increment,name varchar(15),score int );
      create table unpass(id int primary key auto_increment,name varchar(15),score int);
      
      -- 使用存儲過程來
      create procedure myif(in name varchar(15),in score int)
      begin
       if score >=60 then
        insert into pass(name,score) values(name,score);
       else
        insert into unpass(name,score) values(name,score);
       end if;
      end;
      -- 調用,并查看結果
      call myif("lilei",61);
      call myif("hanmeimei",95);
      select * from pass;
      select * from unpass;
      call myif("tuhao",59);
      select * from unpass;
         
    • if中的條件基本可以參照select語句的while子句的條件。什么in\not in \= \!= 等都可以用。
      create procedure myif3(in a char(1))
      begin
       if a in('a','b') then
        select 1;
       else 
        select 2;
       end if;
      end;
      call myif3('a');
      call myif3('b');
      call myif3('c');
         

補充:

  • 理論上,如果做出判斷不符合,然而又不想繼續執行下去的時候,應該執行返回(比如C語言的return來中斷函數運行),但mysql中并沒有對應的中斷機制,所以需要我們主動中斷(中斷的方法有很多種,比如執行一條符合語法但無法運行的語句)【這種場景比如有:判斷一名學生是否存在,不存在就不執行任何操作,所以應該執行一條無法成功運行的語句來報錯返回。】
  • 事實上,還存在一種分支結構:case when 【好像好多書都沒怎么講到,所以這里不講述。有興趣的可以自行百度。】

循環結構:

    • 循環結構是指在程序中需要反復執行某個功能而設置的一種程序結構。mysql中循環結構用于循環多次運行同一sql語句。
    • mysql中的循環結構有loop結構、while結構、repeat結構,這里只講述while結構,有興趣了解其他的可以自行百度。
    • 什么是mysql代碼執行結構
    • 語法:
while 條件 do
 sql語句
end while;
      • 學過其他語言的可能會了解到循環結構中有continue(提前結束此次循環)和break(跳出整個循環)
      • 在mysql的循環結構中,使用leave來代替break,使用iterate來代替continue,但它們的使用語法是:leave\iterate 循環名,所以如何定義循環名呢?
循環名:while 條件 do
 sql語句;
 leave\iterate 循環名;
end while;
   
  • 示例:
    -- 無意義的一個例子,僅作演示
    create table whilenum(id int);
    -- 自帶條件的
    create procedure mywhile()
    begin
     declare num int;
     set num=10;
     c1:while num>0 do
       insert into whilenum values(num);
       set num=num-1;
      end while;
    end;
    -- 以傳入參數作為條件的
    create procedure mywhile2(in num int)
    begin
     c1:while num>0 do
       insert into whilenum values(num);
       set num=num-1;
      end while;
    end;
    -- 帶中斷的
    create procedure mywhile3(in num int)
    begin
     c1:while num>0 do
       if num%2=0 then
        set num=num-1;
        iterate c1;
       end if;
       insert into whilenum values(num);
       set num=num-1;
      end while;
    end;

看完這篇關于什么是mysql代碼執行結構的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿克苏市| 苏尼特左旗| 革吉县| 松原市| 台江县| 介休市| 始兴县| 安岳县| 兴山县| 宜黄县| 翁牛特旗| 柳河县| 花莲市| 双柏县| 南岸区| 利川市| 太湖县| 奎屯市| 大理市| 原阳县| 镇坪县| 塔河县| 秭归县| 隆昌县| 青铜峡市| 翼城县| 新化县| 蓬安县| 灵台县| 高雄市| 肃北| 阿勒泰市| 山阴县| 青浦区| 安康市| 潞西市| 台江县| 新密市| 北流市| 图们市| 商都县|