欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PL/SQL学习笔记(五)

程序员文章站 2024-01-01 23:48:16
...

编写控制结构:顺序结构,条件结构,循环结构

一。条件语句:

1。与delphi或者java,或者其他任何语言的条件语句基本一样咯:

单条件:

IF condition THEN

  ......

END IF;

双条件:

IF condition THEN

  ......

ELSE

  ...

END IF;

多条件:

IF condition THEN

   ...

ELSEIF conditon THEN

   ....

ELSEIF conditon THEN

   ....

ELSE

   ....

END IF;

 

举例:

PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby DECLARE
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   v_sal 
NUMBER ( 6 , 2 );
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   v_id 
NUMBER ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
BEGIN
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   v_id:
= ' &id ' ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
SELECT  salary  into  v_sal  FROM  employee
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
WHERE  id = v_id;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
IF  v_sal < 4000   THEN
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby      
update  employee  set  salary = (v_sal + 100 where  id = v_id;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
ELSE
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby      
update  employee  set  salary = (v_sal - 900 where  id = v_id;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
END   IF ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
END ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 


二。CASE语句:

各种语言的switch ...case语句相同,只不过没有switch关键字。

1。使用单一选择符进行比较:

 

PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby CASE  selector
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
WHEN  expression1  THEN  PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
WHEN  expression  2   THEN  PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 

 

END CASE;

2。多种条件比较:

 

PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby CASE
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
WHEN  condition1  THEN  PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
WHEN  condition2  THEN  PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
WHEN  condition3  THEN  PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
END CASE;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 

 

 

(三)循环语句:

3种循环:

1。基本循环,至少执行一次:

LOOP

   statement1;

   ...

   EXIT WHEN 退出循环条件;

END LOOP1;

例如:

 

PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby LOOP
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
insert   into  employee(id,name)  values (i, ' dennis ' );
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   i:
= i + 1 ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby   
EXIT   WHEN  i > 10 ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
END  LOOP;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 

 

2。while循环:

WHILE conditon1 LOOP

   statement1;

   ...

END LOOP;

比如上面的例子改写为:

 

PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby WHILE  i <= 10  LOOP
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby    
insert   into  employee(id,name)  values (i, ' dennis ' ); 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby    i:
= i + 1 ;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 
END  LOOP;
PL/SQL学习笔记(五) 
            
    
    博客分类: 数据库技术 SQLDelphiRuby 

 

3。FOR循环,类似于ruby的FOR循环:

FOR counter IN [REVERSE] 下限..上限 LOOP

  statement1;

  ...

END LOOP;

REVERSE参数可选,有的话表示从上限往下限递减。

 

(四)顺序控制语句

PL/SQL也提供了GOTO和NULL语句用于控制语句执行顺序,GOTO语句与JAVA的机制相似,通过label来实现跳转,尽量不要使用。NULL语句不会执行任何操作,它的存在主要是为了提高程序的可读性。 

相关标签: SQL Delphi Ruby

上一篇:

下一篇: