⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 第四章 pl-sql的控制结构 - pl-sql用户指南与参考 - whatiswhat.htm

📁 sql初学者不错的教程
💻 HTM
📖 第 1 页 / 共 5 页
字号:
    <TD colSpan=4>
      <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#111111 cellSpacing=0 
      cellPadding=0 width=980 border=0>
        <TBODY>
        <TR>
          <TD></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<SCRIPT language=javascript>function $(s){return document.getElementById(s);}function ShowHideDiv(divid,iImg){if($(divid).style.display == "none"){iImg.src="../../templates/newgreen/images/dot2.gif";$(divid).style.display = "block";iImg.title="收起";}else{iImg.src="../../templates/newgreen/images/dot4.gif";$(divid).style.display = "none";iImg.title="展开";}}navHover();</SCRIPT>

<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#111111 cellSpacing=0 
cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD height=3></TD></TR></TBODY></TABLE><BR>
<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#111111 cellSpacing=0 
cellPadding=0 width="90%" align=center border=0>
  <TBODY>
  <TR>
    <TD width=18 height=28><IMG alt="" 
      src="第四章 PL-SQL的控制结构 - PL-SQL用户指南与参考 - whatiswhat.files/bg_art_left_top.gif" 
      border=0></TD>
    <TD 
    background="第四章 PL-SQL的控制结构 - PL-SQL用户指南与参考 - whatiswhat.files/bg_art_top.gif">
      <P style="MARGIN: 5px; LINE-HEIGHT: 150%"></P></TD>
    <TD width=18 height=28><IMG alt="" 
      src="第四章 PL-SQL的控制结构 - PL-SQL用户指南与参考 - whatiswhat.files/bg_art_right_top.gif" 
      border=0></TD></TR>
  <TR>
    <TD width=18 
    background="第四章 PL-SQL的控制结构 - PL-SQL用户指南与参考 - whatiswhat.files/bg_art_left.gif"></TD>
    <TD align=middle bgColor=#f5fdee><BR><FONT style="FONT-SIZE: 14pt" 
      color=#295200><B>第四章 PL/SQL的控制结构</B></FONT> 
      <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#a5bd6b cellSpacing=1 
      cellPadding=0 width="100%" border=1>
        <TBODY>
        <TR>
          <TD align=middle>
            <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" 
            cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD align=middle>
                  <TABLE 
                  style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" 
                  cellSpacing=0 cellPadding=0 width="100%" border=0>
                    <TBODY>
                    <TR>
                      <TD>
                        <DIV id=art style="MARGIN: 15px">
                        <CENTER><IMG alt="" 
                        src="第四章 PL-SQL的控制结构 - PL-SQL用户指南与参考 - whatiswhat.files/o_cover.jpg"><BR><IMG 
                        alt="" 
                        src="第四章 PL-SQL的控制结构 - PL-SQL用户指南与参考 - whatiswhat.files/o_banner.gif"> 
                        </CENTER>
                        <DIV id=chapter>第四章 PL/SQL的控制结构</DIV><!-- InstanceEndEditable --><!-- InstanceBeginEditable name="EditRegion2"  -->
                        <P class=title1>一、PL/SQL控制结构一览</P>
                        <P>根据结构定理(structure 
                        theorem),任何计算机程序都可以用下图中的基本控制结构来表示。它们可以任意组合来解决问题。 
                        </P><IMG alt="" 
                        src="第四章 PL-SQL的控制结构 - PL-SQL用户指南与参考 - whatiswhat.files/o_4-1.gif"> 

                        <P>选择结构是用于测试条件的,根据条件的真假,执行一系列语句。一个条件语句可以是任何能够返回布尔值(TRUE或FALSE)的变量或表达式。循环结构能在条件满足的情况下反复执行。序列结构只是简单的按照顺序执行语句。 
                        </P>
                        <P class=title1>二、条件控制:IF和CASE语句</P>
                        <P>有时候,我们需要根据具体的条件来采取不同的对策。IF语句就能让我们按条件来执行语句序列。也就是说,语句序列的执行与否取决于某个给定的条件。有三种IF语句:IF-THEN、IF-THEN-ELSE和IF-THEN-ELSIF。CASE语句是条件判断的精简形式,它能计算条件表达式的值并在多个对应动作中做出选择。 
                        </P>
                        <P class=title2>1、IF-THEN语句</P>
                        <P>IF语句最简单的形式就是把一个条件和一个语句序列用关键字THEN和END IF关联起来: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>IF</STRONG>&nbsp;condition&nbsp;<STRONG>THEN</STRONG><BR>&nbsp;&nbsp;sequence_of_statements<BR><STRONG>END</STRONG>&nbsp;<STRONG>IF</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>只有在条件值为真的时候语句序列才能被执行。如果条件值为假或是空,IF语句就什么都不做。无论哪种情况,控制权最后还是会被传递到下一个语句,如下例: 
                        </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>IF</STRONG>&nbsp;sales&nbsp;&gt;&nbsp;QUOTA&nbsp;<STRONG>THEN</STRONG><BR>&nbsp;&nbsp;compute_bonus(empid);<BR><BR>&nbsp;&nbsp;<STRONG>UPDATE</STRONG>&nbsp;payroll<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>SET</STRONG>&nbsp;pay&nbsp;=&nbsp;pay&nbsp;+&nbsp;bonus<BR>&nbsp;&nbsp;&nbsp;<STRONG>WHERE</STRONG>&nbsp;empno&nbsp;=&nbsp;emp_id;<BR><STRONG>END</STRONG>&nbsp;<STRONG>IF</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>如果我们把IF语句放到一行,就可以像下面这样编写: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>IF</STRONG>&nbsp;x&nbsp;&gt;&nbsp;y&nbsp;<STRONG>THEN</STRONG>&nbsp;high&nbsp;:=&nbsp;x;&nbsp;<STRONG>END</STRONG>&nbsp;<STRONG>IF</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P class=title2>2、IF-THEN-ELSE语句</P>
                        <P>第二种形式的IF语句使用关键字ELSE添加了一个额外的处理选项,如下: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>IF</STRONG>&nbsp;condition&nbsp;<STRONG>THEN</STRONG><BR>&nbsp;&nbsp;sequence_of_statements1<BR><STRONG>ELSE</STRONG><BR>&nbsp;&nbsp;sequence_of_statements2<BR><STRONG>END</STRONG>&nbsp;<STRONG>IF</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>当条件为假或空时,ELSE子句中的语句序列就会被执行。下例中,第一个UPDATE语句在条件为真的情况下执行,而第二个UPDATE语句在条件为假或为空的情况下才会被执行: 
                        </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>IF</STRONG>&nbsp;trans_type&nbsp;=&nbsp;<EM>'CR'</EM>&nbsp;<STRONG>THEN</STRONG><BR>&nbsp;&nbsp;<STRONG>UPDATE</STRONG>&nbsp;accounts<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>SET</STRONG>&nbsp;balance&nbsp;=&nbsp;balance&nbsp;+&nbsp;credit<BR>&nbsp;&nbsp;&nbsp;<STRONG>WHERE</STRONG>&nbsp;...<BR><STRONG>ELSE</STRONG><BR>&nbsp;&nbsp;<STRONG>UPDATE</STRONG>&nbsp;accounts<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>SET</STRONG>&nbsp;balance&nbsp;=&nbsp;balance&nbsp;-&nbsp;debit<BR>&nbsp;&nbsp;&nbsp;<STRONG>WHERE</STRONG>&nbsp;...<BR><STRONG>END</STRONG>&nbsp;<STRONG>IF</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>THEN和ELSE子句中也可以包含IF语句。就是说IF语句能够被嵌套使用,如下例所示: </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>IF</STRONG>&nbsp;trans_type&nbsp;=&nbsp;<EM>'CR'</EM>&nbsp;<STRONG>THEN</STRONG><BR>&nbsp;&nbsp;<STRONG>UPDATE</STRONG>&nbsp;accounts<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>SET</STRONG>&nbsp;balance&nbsp;=&nbsp;balance&nbsp;+&nbsp;credit<BR>&nbsp;&nbsp;&nbsp;<STRONG>WHERE</STRONG>&nbsp;...<BR><STRONG>ELSE</STRONG><BR>&nbsp;&nbsp;<STRONG>IF</STRONG>&nbsp;new_balance&nbsp;&gt;=&nbsp;minimum_balance&nbsp;<STRONG>THEN</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>UPDATE</STRONG>&nbsp;accounts<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>SET</STRONG>&nbsp;balance&nbsp;=&nbsp;balance&nbsp;-&nbsp;debit<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>WHERE</STRONG>&nbsp;...<BR>&nbsp;&nbsp;<STRONG>ELSE</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>RAISE</STRONG>&nbsp;insufficient_funds;<BR>&nbsp;&nbsp;<STRONG>END</STRONG>&nbsp;<STRONG>IF</STRONG>;<BR><STRONG>END</STRONG>&nbsp;<STRONG>IF</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P class=title2>3、IF-THEN-ELSIF语句</P>
                        <P>有时我们可能需要从几个选项中选择一个,这时我们就需要使用第三种IF语句,添加一个ELSIF关键字提供额外的条件选项,使用方法如下: 
                        </P>
                        <BLOCKQUOTE>
                          <TABLE>
                            <TBODY>
                            <TR>
                              <TD 
                                noWrap><STRONG>IF</STRONG>&nbsp;condition1&nbsp;<STRONG>THEN</STRONG><BR>&nbsp;&nbsp;sequence_of_statements1<BR><STRONG>ELSIF</STRONG>&nbsp;condition2&nbsp;<STRONG>THEN</STRONG><BR>&nbsp;&nbsp;sequence_of_statements2<BR><STRONG>ELSE</STRONG><BR>&nbsp;&nbsp;sequence_of_statements3<BR><STRONG>END</STRONG>&nbsp;<STRONG>IF</STRONG>; 
                              </TD></TR></TBODY></TABLE></BLOCKQUOTE>
                        <P>如果第一个条件为假或空,ELSIF子句就会检测另外一个条件。一个IF语句可以有多个ELSIF子句;最后一个ELSE子句是可选的。条件表达式从上而下的计算。只要有满足的条件,与它关联的语句就会执行,然后控制权转到下一个语句。如果所有的条件都为假或是空,ELSE部分的语句就会执行。看一下下面的例子: 
                        </P>
                        <BLOCKQUOTE>
                          <TABLE>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -