`

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_api.zip_Oracle_API_Oracle_API.CHM_oracle_oracle API_oracl

    10. **事务控制**:在Oracle API中,可以使用诸如`COMMIT`、`ROLLBACK`等命令来控制事务,确保数据的一致性和完整性。 11. **存储过程和函数**:Oracle API 允许开发者创建自定义的存储过程和函数,这些可以在...

    ORACLE_DEVELOPER使用指南

    7. **数据模型与设计**:了解如何使用Oracle Developer进行数据库设计,包括实体关系模型(ER图),以及如何将这些模型转换为实际的数据库结构。 8. **性能优化**:学习如何使用Oracle Developer的性能分析工具来...

    oracle_note.rar_oracle_oracle Note 341456

    9. **并发控制**:Oracle使用多版本并发控制(MVCC)来处理多个事务同时访问相同数据的情况,防止数据不一致。 10. **集群和分布式数据库**:Oracle Real Application Clusters(RAC)允许数据库在多台服务器上运行...

    Oracle_Database_编程艺术_深入数据库体系结构_10g11g(电子完整版)

    《Oracle_Database_编程艺术_深入数据库体系结构_10g11g》是一本针对Oracle数据库编程和体系结构的权威指南,由Oracle领域的资深专家撰写。这本书详细地揭示了Oracle数据库10g和11g的核心技术,帮助读者深入理解...

    PLSQL.rar_oracle_oracle ppt_oracle projects_plsql ppt_plsql proj

    1. **基础语法**:包括数据类型、变量声明、控制结构(如IF-THEN-ELSE、CASE语句)、循环(WHILE、FOR)、异常处理(BEGIN-EXCEPTION-END)等。 2. **游标**:在处理大量数据时,游标是PL/SQL中非常重要的概念,它...

    Oracle_PL-SQL.rar_ORACLE PL_oracle_oracle sql_oracle 教程_pl sql

    2. **控制结构**:PL/SQL中的控制结构包括条件语句(IF-THEN-ELSIF-ELSE)、循环语句(WHILE、FOR)、CASE表达式等,它们用于根据特定条件执行不同的代码块。 3. **异常处理**:Oracle PL/SQL有内置的异常处理机制...

    ORACLE_DB_学习好资料

    - 控制结构:IF-THEN-ELSIF-ELSE,CASE,FOR循环,WHILE循环。 - 异常处理:EXCEPTION,RAISE,WHENEVER。 - 游标:用于逐行处理查询结果。 - 包(PACKAGE):将相关的过程和函数组合在一起,提升代码复用和管理...

    oracle_db_process.zip_linux oracle_oracle

    同时,还有DDL(Data Definition Language)用于创建和修改表结构,DML(Data Manipulation Language)用于操作数据,以及DCL(Data Control Language)用于权限控制。 4. **PL/SQL**: Oracle特有的编程语言,扩展...

    oracle_note.rar_ORACLE 入门_oracle_oracle 笔记

    这份"Oracle_note.rar"压缩包包含的"数据库开发Oracle学习笔记"是为初学者准备的一份详细教程,旨在帮助读者快速掌握Oracle的基础知识和操作技能。 1. **Oracle数据库概述** Oracle数据库系统是由美国甲骨文公司...

    Oracle_Database_11g_SQL_-_Master_SQL_and_PLSQL_in_the_Oracle_Database

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,尤其在企业级应用中占据主导地位。Oracle Database 11g是Oracle公司推出的一个重要版本,它提供了许多增强的功能和优化,旨在提高性能、可用性和安全...

    oracle_DBA.rar_dba_dsi401_oracle dba_oracle internal_oracle 培训

    Oracle DBA,即Oracle数据库管理员,是管理和维护Oracle数据库系统的关键角色..."www.pudn.com.txt"和"oracle_DBA培训中文版"可能是该培训课程的资料,包含了详细的教程和实践案例,对于深入学习Oracle DBA非常有帮助。

    oracle_train.zip

    数据库性能优化是Oracle学习中的重要部分。这部分可能包括了SQL调优、索引优化、内存结构调整、数据库架构设计等方面的知识。例如,如何使用EXPLAIN PLAN分析SQL执行计划,理解绑定变量的作用,以及如何通过调整初始...

    Oracle_11g_OCP最新题库(PDF+VCE)2013.10.25考试过

    3. **数据库架构**:深入理解Oracle数据库的物理和逻辑结构,如表空间、数据块、段、对象和簇等。 4. **故障排除**:学习如何诊断和解决数据库故障,例如通过alert log、trace文件和数据库日志进行问题定位。 5. *...

    oracle_plsql学习资料

    Oracle PL/SQL是一种在Oracle数据库环境中使用的编程语言,它结合了SQL的查询和数据操作能力与PL/SQL的流程控制和面向对象特性。这个“oracle_plsql学习资料”压缩包包含了一个名为“oracle_plsql.pdf”的文件,可以...

    疯狂Java_疯狂软件_Oracle_数据字典和创建表空间

    数据字典是由一系列视图和表组成的,这些视图和表由Oracle系统自动维护,它们提供了关于数据库结构、权限、表空间、索引和其他关键信息的查询途径。例如,`DBA_TABLES`视图展示了数据库中的所有表信息,`DBA_OBJECTS...

    Oracle_Concept_11gR2_EN_CH

    《Oracle Concept 11gR2 EN CH》是Oracle数据库系统的一款重要参考资料,它提供了对Oracle 11g Release 2(11gR2)核心概念的全面介绍,同时包含英文原文和中文翻译,方便中国用户学习和理解。这份文档的大小约为20...

    Oracle_PLSQL.rar_Java plsql_oracle_oracle doc_pl sql_plsql

    3. **PL/SQL控制结构** - **条件判断**:IF-THEN-ELSIF-ELSE语句用于根据条件执行不同的代码路径。 - **循环**:WHILE、FOR循环以及LOOP结构用于重复执行一段代码。 - **分支语句**:GOTO和EXIT语句提供额外的...

    ORACLE_PLSQL.rar_oracle_plsql

    声明部分定义变量和常量,执行部分包含SQL语句和PL/SQL控制结构,异常处理部分用于捕获和处理运行时错误。 2. **数据类型**:Oracle PL/SQL支持多种数据类型,包括数值类型(如NUMBER、INTEGER)、字符类型...

    oracle软件安装和数据库的创建_oracle_数据库oracle_

    总结,Oracle软件的安装和数据库创建是Oracle学习的基础,理解这些步骤并能熟练操作,将有助于你在数据库管理和开发方面的能力提升。通过阅读"3oracle软件安装和数据库的创建.txt"文件,你应该能够获得更具体的指导...

    oracle_dba.rar_oracle_oracle dba

    1. **Oracle数据库体系结构**: Oracle数据库由多个组件构成,包括数据文件、控制文件、重做日志文件、参数文件等。理解这些文件的作用和管理方法是DBA的基础。 2. **实例与服务**: Oracle实例是内存结构和后台...

Global site tag (gtag.js) - Google Analytics