• 1
  • 2
  • 3
  • 4
  • 5
mysql数据库问题 首 页  »  帮助中心  »  数据库  »  mysql数据库问题
Mysql的几种语句标签
发布日期:2016-4-15 12:4:14

  Mysql的几种语句标签

  除了BEGIN……END之外,在存储过程的存储体内可以使用的语句标签有下面几种:

  

  下面我们对上述语句分别进行一下解释:

  begin_label 如果要给出begin_label,则后面必须带着冒号(:)。并且给出了begin_label,最后不一定非得跟着end_label。但是,如果给出end_label,那end_label必须和begin_label相同。

  end_label 对于这个标签,不能在没有begin_label的情况下单独给出end_label。

  还有一点需要说明,对于这些label,每一层中的label必须是唯一的,不能相同。并且每个label的字符串长度最长为16个字符。

  下面我们举个例子来说明。

  例一

  

  上面的例子中label1就是上面我们说到的begin_label和end_label。根据上面我们的说明,上面的例子也可以改成如下的形式。

  例二

  

  接下来我们分别看一下上述几种语句标签的应用。

  1. BEGIN……END

  BEGIN … END主要用于写复合语句的。一个复合语句可能会包含多条语句,这些语句都是由BEGIN … END界定的。就像我们下面这个例子。

  例三

  

  例四

  

  并且BEGIN … END块儿是可以被嵌套的。而且还可以被冠以名称。

  2. REPEAT

  

  同样REPEAT重复执行块儿内的statement_list,直到UNTIL的条件不成立的时候结束循环。因此,我们可以看出statement_list至少被执行一次。此语句标签可以理解成编程语言中的do{}while();

  使用示例如下。

  例六

  

  3. LOOP

  

  LOOP 作用是重复执行statement_list,它可能包含一条或多条执行语句。这些语句都是用分号(;)来界定的,所以之前我们需要先使用delimiter //命令改变客户端命令行的界定符。这个命令在《mysql存储过程细节窥探》中有说过。对于这个标签的使用实例如下。

  例五

  

  LOOP的需要借助ITERATE 来重复,而LOOP的循环结束需要有LEAVE来完成,当然也可以使用RETURN。这里的LEAVE我们可以理解成编程语言中的break来跳出循环。RETURN可以理解成编程语言中的return,亦可以跳出循环,不过这个是整个程序的退出。

  4. WHILE

  

  WHILE表示在此块儿内的statement_list被重复执行,只要search_condition为真就会执行。也就是说此WHILE语句标签相当于编程语言中的while(){}语句。

  使用示例如下。

  例七