国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

何為mysql代碼執行結構

2024-07-24 12:35:54
字體:
來源:轉載
供稿:網友
  小編這次要給大家分享的是什么是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結構,有興趣了解其他的可以自行百度。
 
  語法:
  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代碼執行結構的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 翁源县| 高台县| 江西省| 桂平市| 磐石市| 阜新市| 霍城县| 军事| 库车县| 三门峡市| 特克斯县| 昌吉市| 神池县| 鲁山县| 龙井市| 本溪市| 上饶市| 昭平县| 扎赉特旗| 奉新县| 渝中区| 德令哈市| 丽江市| 龙胜| 二连浩特市| 贡山| 平江县| 涟水县| 色达县| 宿松县| 施甸县| 云安县| 平阳县| 息烽县| 务川| 左贡县| 揭阳市| 耿马| 井研县| 平湖市| 杂多县|