`

Oracle_学习使用控制结构

阅读更多
一、条件分支语句
条件分支语句用于依据特定的情况选择要执行的操作,PL/SQL提供了三种条件分支语句:if-then, if-then-else,if-then-elsif。
语法如下:
if conditions then
   statements;
[elseif conditions then 
   statements;]
[else 
   statements;]
end if;

   1、if-then示例
    用于执行单一条件判断,如果满足特定条件则会执行相应操作,如果不满足特定条件则退出条件分支语句。
  
    
    declare
      v_count number;
    begin
    select count(*) into v_count from cip_temps;
    if(v_count>0) then
  	 dbms_output.put_line('v_cont的值:'|| v_count);
      end if;
    end;
   /
   

    2、if-then-else示例
     用于执行二重条件判断,如果满足特定条件则执行一组操作,如果不满足则执行另一组操作。
     
      declare
        v_count number;
      begin
        select count(*) into v_count from cip_temps;
          if(v_count>11) then
  	    dbms_output.put_line('v_cont的值:'|| v_count);
          else 
          dbms_output.put_line('v_count的值:'|| v_count);
        end if;
      end;
     /
    

  
    3、if-then-elsif示例
     用于执行多重条件判断,如果满足特定条件1则执行第一组操作,如果满足特定条件2则执行第二组操作,以此类推,如果都不满足特定条件则执行不满足条件的操作。
   
 
      declare
        v_count number;
      begin
        select count(*) into v_count from cip_temps;
        if(v_count>10) then
  	       dbms_output.put_line('if操作___v_cont的值:'|| v_count);
        elsif (v_count=10) then
          dbms_output.put_line('elsif操作____v_count的值:'|| v_count);
        else
          dbms_output.put_line('else操作____v_cout的值:'||v_count);
        end if;
      end;
      / 
 

二、case语句
当执行多重条件分支语句时,使用case语句更加简洁、而且效率也更好。case语句处理多重条件分支语句有两种方法,第一种方法是使用单一选择符进行等值比较。第二种方法是使用多种条件进行非等值比较。
   1、使用单一选择符进行等值比较
      当执行case语句执行多重条件分支时,如果条件选择符完全相同,并且条件表达式为相同条件选择,那么可以选择单一选择符进行等值比较,语法如下:
  
   case  条件选择符
      when   条件值表达式1 then 要执行的操作1;
      when   条件值表达式2 then 要执行的操作2;
       。。。。。。。
      else 
        要执行的操作。
      end case;
   

  示例如下:
   
    declare
      v_count number;
    begi
     select count(*) into v_count from cip_temps;
      case v_count
        when 1 then
 	        dbms_output.put_line('when 1操作___v_cont的值:'|| v_count);
        when 5 then
         dbms_output.put_line('when 5操作___v_count的值:'|| v_count);
        when 10 then
         dbms_output.put_line('when 10操作____v_count的值:'|| v_count);
      else
        dbms_output.put_line('else操作____v_cout的值:'||v_count);
     end case;
    end;
    / 
 

   2、case使用多种条件进行比较
   如果选择多个条件进行不同比较时,那么必须在when子句中指定比较条件,语法如下:
    
   case  
      when   条件值表达式1 then 要执行的操作1;
      when   条件值表达式2 then 要执行的操作2;
       。。。。。。。
      else 
        要执行的操作。
      end case;
   

  示例如下:
  
    declare
      v_count number;
    begin
     select count(*) into v_count from cip_temps;
      case 
        when v_count>10 then
 	        dbms_output.put_line('when 1操作___v_cont的值:'|| v_count);
        when v_count>5 then
         dbms_output.put_line('when 5操作___v_count的值:'|| v_count);
        when v_count>4 then
         dbms_output.put_line('when 10操作____v_count的值:'|| v_count);
        else
        dbms_output.put_line('else操作____v_cout的值:'||v_count);
     end case;
    end;
    / 
 

三、循环语句
  三种循环:基本循环、while循环、for循环语句。
1、基本循环
循环语句以loop开始,以end loop结束,其语法如下:
  loop
      statement1;
       。。。。。。
       exit[when condition];
    end loop;
注意:当执行基本循环语句时,无论是否满足条件,语句至少会被执行一次,当condition为true时,会推出循环。并执行end loop后的相应操作。当编写基本循环语句时,一定要有exit语句,否则会出现死循环,另外还要定义循环控制变量。
  示例如下:
    declare
     i int:=1;
    begin
     loop   
	  dbms_output.put_line(i);
	  exit when i=10;
	  i:=i+1;
	 end loop;
    end;
    /
 

2、while循环
对于while循环,只要条件为true时,才执行循环体内语句。while循环以while...loop开始,以end loop结束。其语法如下:

while 条件 loop
语句1;
语法2;
end loop;

当条件为true执行循环体内语句,当条件为false或full时,则跳出循环执行end loop以后的语句,另外还要定义循环控制变量。
示例如下:
    declare
     i int:=1;
    begin
     while i<=10 loop   
	   dbms_output.put_line(i);
	  i:=i+1;
	 end loop;
    end;
    /
 

3、for循环
当使用for循环时,oracle会隐藏定义循环控制变量(即不需要人工定义循环控制变量),语法如下:

for counter in[reverse]
lower_bound..upper_bound loop
      statement1;
      statement2;
      ..........
end loop;

注意:counter循环控制变量,oracle会隐藏定义,lower_bound和upper_bound分别对应于循环变量的下界值和上界值,默认情况下,当使用for循环时,每次循环时循环控制变量会自动增一;如果指定reverse选项,那么每次循环时循环变量会自动减一。示例如下:
   declare
    begin
    for i in reverse  1..10 loop
	    dbms_output.put_line(i);
    end loop;
    end;
    / 
 
分享到:
评论

相关推荐

    Oracle控制语句结构

    Oracle数据库学习整理出来的控制语句结构,提供给大家参考哦

    数据库 ORACLE_8_初学者指南2

    1.9 Oracle使用自己的工具—应用软件 1.10 Oracle InterOffice 1.11 Developer/2000与Designer/2000 1.12 Personal Oracle 1.13 服务 1.14 Oracle用户组—事件和出版物 1.15 Oracle的数据仓库 1.16 网络计算 1.17 本...

    Oracle数据库学习手册 .docx

    《Oracle学习手册》以Oracle for Windows 为平台,由浅入深地介绍Oracle Database 系统的使用方法和基本管理。主要包括:关系数据库设计、Oracle数据库的基本体系结构、存储管理、管理控制文件和日志文件、SQL语言...

    数据库 ORACLE_8_初学者指南1.rar

    1.9 Oracle使用自己的工具—应用软件 1.10 Oracle InterOffice 1.11 Developer/2000与Designer/2000 1.12 Personal Oracle 1.13 服务 1.14 Oracle用户组—事件和出版物 1.15 Oracle的数据仓库 1.16 网络计算 1.17 本...

    Oracle 12c体系结构学习实验笔记

    Oracle 12c数据库实例启动和关闭详解.pdf ...Oracle 12c实验-管理控制文件.pdf Oracle 12c实验-管理数据文件和临时文件.pdf Oracle 12c实验-管理重做日志.pdf Oracle 12c实验-归档模式&非归档模式.pdf

    Oracle完全学习手册电子书.part1.rar

    主要包括:关系数据库设计、Oracle数据库的基本体系结构、存储管理、管理控制文件和日志文件、SQL语言基础、使用SQL*Plus、PL/SQL程序设计、存储过程、触发器和程序包、表、模式对象管理、安全管理以及基本的备份与...

    Oracle 11g完全学习手册光盘代码

    主要包括:关系数据库设计、Oracle数据库的基本体系结构、存储管理、管理控制文件和日志文件、SQL语言基础、使用SQL*Plus、PL/SQL程序设计、存储过程、触发器和程序包、表、模式对象管理、安全管理以及基本的备份与...

    Oracle 10g 学习笔记

    │ ORACLE学习笔记(二)oracle的逻辑结构 - lvhuiqing的专栏 - CSDN博客.mht.lnk │ ORACLE学习笔记(二)SQLPLUS基础 - lvhuiqing的专栏 - CSDN博客.mht │ ORACLE学习笔记(二)SQLPLUS基础 - lvhuiqing的专栏 - ...

    Oracle数据库精讲之数据库管理_ Oracle数据库管理视频

    1. 为有意从事oracle dba工作人员提供学习指导。 2. 提供oracle数据库dba日常管理方法。 3. 掌握oracle数据库体系机构,为oracle优化奠定基础。 三、适合人群: 1.有意从事oracle 数据库工作,担任dba角色的人员; ...

    炼数成金 课程+教材 Oracle数据库职业直通车-Oracle入门学习教学视频 谭怀远老师.txt

    第4课 Oracle数据库的参数文件,控制文件,数据文件和日志文件 第5课 Oracle体系架构简述 第6课 Oracle数据库的对象(1) 第7课 Oracle数据库的对象(2) 第8课 复杂一些的SQL语句 第9课 学写存储过程和函数 第10课...

    Oracle完全学习手册电子书.part2.rar

    主要包括:关系数据库设计、Oracle数据库的基本体系结构、存储管理、管理控制文件和日志文件、SQL语言基础、使用SQL*Plus、PL/SQL程序设计、存储过程、触发器和程序包、表、模式对象管理、安全管理以及基本的备份与...

    浅谈oracle存储结构

    oracle文件学习精华课件,美创公开课内容 参数文件、控制文件、redo、undo、数据文件等等均有详细阐述。

    大型数据库系统技术课程 Oracle数据库OceanBase数据库知识教程 PLSQL介绍全部课程PPT课件共12个章节.rar

    3-1-Oracle数据库知识 PLSQL控制结构 共25页.ppt 4-1-异常处理 共87页.ppt 4-2-过程与函数 共62页.ppt 4-3-在PLSql中使用sql 共98页.ppt 5-1-DistributedDatabaseSystem分布式数据库系统技术介绍 共54页.ppt 5-1-...

    Oracle四大宝典之二:Oracle基本管理 中文版

    无论你之前学了关于ORACLE数据库的哪些内容,如果你希望能够学习好ORACLE数据库,请认真学习它的体系结构,它是学习ORACLE的基石,是其他所有学习的根本。 第一章 数据库体系结构概述 第二章 创建数据库 第三章 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    Oracle自学(学习)材料 (共18章 偏理论一点)

    2 Oracle 服务器入门 目标 2-2 数据库管理工具 2-3 Oracle 通用安装程序 2-4 交互式安装 2-5 使用反应文件的非交互式安装 2-6 Oracle 数据库配置助手 2-8 最优灵活体系结构(OFA) 2-9 Oracle 软件和文件位置 2-10 ...

    oracle 数据库学习 基本结构介绍

    * 数据库由数据文件(包含oracle 数据、索引、表结构等数据)、控制文件(包括每个表的操作信息)、日志文件(数据操作sql语句)、参数文件、口令文件、日志归档文件(归档模式下)(服务器崩溃、硬盘损坏情况下,...

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    学习Oracle 11g的新特性 第2章-Oracle 11g的安装与测试 能够使用Oracle 11g的基本条件 在Windows 2003上安装Oracle 11g 移除Oracle 11g 第3章-熟悉数据库 什么是数据库 范式,设计关系型数据库的准则 绘制...

    Oracle 10g应用指导

    第2章 Oracle体系结构,包括Oracle数据库逻辑结构和数据库物理结构以及Oracle文件的目录结构等。在案例精讲中对数据块校验、表的移动、数据文件丢失或损坏、丢失控制文件、数据文件更名以及数据库内文件的复制传输等...

Global site tag (gtag.js) - Google Analytics