`
234390216
  • 浏览: 10191610 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:460707
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1771614
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1395289
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:393844
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:678159
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:529213
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1178601
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:461557
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:150069
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:66778
社区版块
存档分类
最新评论

Oracle——08PL/SQL简介,基本程序结构和语句

阅读更多

1.变量

2.常量

3.基本程序结构和语句

 




PL/SQL能够驻留在Oracle数据库服务器和Oracle开发工具两个环境中。在这两个环境中,PL/SQL引擎接受任何PL/SQL块和子程序作为输入,引擎执行过程语句将SQL语句发送给Oracle服务器的SQL语句执行器执行。

 

1、PL/SQL变量

(1)变量的声明:

变量通常是在PL/SQL块的声明部分定义的,每一个变量都有一个特定的类型。

变量定义的基本格式为:

<变量名> <数据类型>[(宽度):=<初始值>]

如定义一个名为countNum的number类型变量,初始值为1,可以如下写:

countNum number := 1;

 

		--变量的基本命名规则如下:


		--a.变量名必须以字母开头


		--b.变量长度不超过30个字符


		--c.变量名中不能有空格
 

(2)变量的属性

%用于表示属性提示符。

%type属性。%type属性提供了变量和数据库列的属性,有了这个属性是非常方便的,假设现在有个表A,里面有字段B,现在要定义一个变量C,需要它的数据类型和字段B一样,这个时候我们可以不知道B的数据类型,直接使用B%type就可以了,如:C B%type。

%rowtype属性。这个属性提供了表示一个表中一行记录的数据类型。有了它我们就可以方便的用一个变量表示游标中的一行,如cursorRecord cursorName%rowtype,其中,cursorRecord表示游标一行的变量名,cursorName表示对应游标的名称,利用%rowtype就可以取到一行的记录类型,这样以后在取数据的时候,就可以直接使用

fetch cursorName into cursorRecord中了。示例代码:

 

		declare cursor moduleCursor is


		select * from t_module;


		moduleRecord moduleCursor%rowtype;


		begin


		  open moduleCursor;


		  fetch moduleCursor into moduleRecord;


		  while moduleCursor%found 


		  loop


			dbms_output.put_line(moduleRecord.name || '**********************');


			fetch moduleCursor into moduleRecord;


		  end loop;


		  close moduleCursor;


		end;
 

(3)自定义数据类型

PL/SQL还支持用户自定义数据类型。下面是自定义一个PersonRecord数据类型的示例:

 

			declare


				type PersonRecord is record (


					name varchar(20),


					age number(3)


				);
 

下面是PersonRecord的实际应用示例:

 

			declare
				type PersonRecord is record (
					name varchar(20),
					id number(3)
				);
				person PersonRecord;
			begin
				select name,id into person from t_employee where username='admin';
				dbms_output.put_line('**********' || person.name);
			end;
 

2、PL/SQL常量

常量是指在程序运行过程中值不变的量。

常量声明的基本格式如下:

<常量名> constant <数据类型> := <值>

如定义一个整型常量num,值为5,可以如下写:

num constant integer := 5;

    3、PL/SQL基本程序结构和语句
    (1)条件结构
        a.if-then结构
        语法格式:

            if booleanExpression
                then runExpression
            end if;
        --当booleanExpression的结果为真时就执行runExpression部分,注意用end if结束if语句。

 

        示例代码:

            declare totalCount number;
            begin
              select count(*) into totalCount from t_module;
              if totalCount > 0 then
              dbms_output.put_line('共有' || totalCount || '条记录');
              end if;
            end;


        b.if-then-else结构
        语法格式:

            if booleanExpression then
                runExpression
            else
                runExpression2
            end if;
       --该结构表示当booleanExpression的结果为true时执行runExpression,否则执行runExpression2,注意要结束end if;
 


        示例代码:

            declare
            a number;
            b number;
            c number;
            begin
            a := 1;
            b := 2;
            c := 3;
            if a=1 then
              c := c + a;
            else
              c := c + b;
            end if;
            DBMS_OUTPUT.PUT_LINE(c);
            dbms_output.put_line(c);
            end;

 

        c.if-then-elsif-then-else结构
        语法格式:

            if booleanExpression then
                runExpression1
            elsif booleanExpression2 then
                runExpression2
            else
                runExpression3
            end if;
        --该结构表示当booleanExpression为true时执行runExpression1,否则当booleanExpression2为true时执行runExpression2,否则执行runExpression3
 


       
    (2)循环结构
        编写循环结构的时候一定要确保有退出条件满足。
        a.loop-exit-end循环
        语法格式:

            loop
                runExpression;    --执行循环体
                if booleanExpression then    --判断是否满足退出条件
                    exit;    --当满足退出条件时即退出循环
                end if; --结束if语句
            end loop; --结束loop语句
 


            示例代码,利用loop-exit-end循环求10的阶乘:

            declare
              n number := 10;
              results number := 1;
            begin
              loop
                results := results * n;
                n := n - 1;
                if n=0 then
                  exit;
                end if;
              end loop;
              dbms_output.put_line('10的阶乘是:' || results);
            end;

 

           
        b.loop-exit-when-end循环
        语法格式:

            loop
                runExpression;    /*执行循环体*/
                exit when booleanExpression    /*测试是否符合退出条件,符合即退出*/
            end loop;

 


            示例代码,利用此结构求10的阶乘:

                declare
                  a number := 1;
                  b number := 1;
                begin
                  loop
                    b := a * b;
                    a := a + 1;
                    exit when a > 10;
                  end loop;
                  dbms_output.put_line('the result is: ' || b);
                end;
 


        c.while-loop-end循环
        语法格式:

            while booleanExpression     --测试是否符合退出条件
            loop
                runExpression; --执行循环体
            end loop;
        --此种结构先判断是否符合条件再进行循环,而上面的两种是先执行一次循环再判断是否符合条件。
 


            示例代码:

                declare
                  a number := 1;
                  b number := 1;
                begin
                  while a<=10
                  loop
                    b := a * b;
                    a := a + 1;
                  end loop;
                  dbms_output.put_line('the result is: ' || b);
                end;
 


        d.for-in-loop-end循环
        语法格式:

            for countVar in count1..countn    --定义跟踪循环的变量
            loop
                runExpression    --执行循环体
            end loop;
        --countVar是循环变量,表示当前循环的当前值,in确定循环变量的初值count1和终值countn,如果循环变量的值小于终值则执行循环体,否则就退出
        --循环,每循环一次循环变量的值自动增加一个步长。
 


            示例代码:

                declare
                  b number := 1;
                begin
                  for c in 1..10
                  loop
                    b := b * c;
                  end loop;
                  dbms_output.put_line('the result is: ' || b);
                end;
        
 


    (3)选择语句
        case语句:可以使用简单结构,对数值列表做出选择。
        语法格式:

            case inputName
                when expression1 then result1
                when expression2 then result2
                when expressionn then resultn
                else result
            end;
        -- case语句会依次比较expressionn与inputName的值,若相等,则返回resultn,否则继续往下判断,若都不满足,则返回else中result的值。
 


        示例代码:

            declare
              num1 number;
            begin
              num1 := 6;
              case num1
              when 1 then
                dbms_output.put_line('the result is no.1');
              when 2 then
                dbms_output.put_line('the result is no.2');
              when 3 then
                dbms_output.put_line('the result is no.3');
              else
                dbms_output.put_line('the result is not in top 3');
              end case;
            end;
 

 

5
0
分享到:
评论

相关推荐

    Oracle PL/SQL语言初级教程

    Oracle公司已经将PL/SQL整合到Oracle 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本教程将以循速渐进的方式讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL/SQL程序,...

    精通Oracle 10g SQL和PL/SQL

     本书是专门为oracle开发人员而提供的编程指南 通过学习本书 读者不仅可以掌握编写sql语句和pl/sql块的基础知识 而且还可以掌握sql高级特征 正则表达式 flashback查询 merge语句 sql:1999连接 和pl/sql高级特征 ...

    Oracle PL/SQL程序设计(第5版)(下册)第二部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    精通Oracle 10g PL/SQL编程

    通过学习本书,读者不仅可以掌握PL/SQL的基础编程知识(嵌入SQL语句和编写子程序),而且还可以掌握PL/SQL的所有高级开发特征(使用记录类型、集合类型、对象类型和大对象类型)。另外,本书还为应用开发人员提供了大量...

    PL/SQL免安装版

    在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。PL/SQL免安装版,点击即用,非常方便!

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二)

    通过学习本书,读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法,而且可以掌握sql语句和pl/sql的各种基础知识和高级特征(记录...

    PL/SQL Developer 6.05注册版-1

    更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL...

    Oracle_PLSQL语言基础

    PL/SQL 不是一个独立的产品,他是一个整合到ORACLE服务器和ORACLE工具中的技术,可以把PL/SQL看作ORACLE服务器内的一个引擎,sql语句执行者处理单个的sql语句,PL/SQL引擎处理PL/SQL程序块。当PL/SQL程序块在PL/SQL...

    Oracle PL/SQL程序设计(第5版)(下册) 第一部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    PL/SQL编程基础知识

    PL/SQL 编程基础知识详解,PL/SQL 包含过程化语句和SQL语句数据操作和查询语句被包含在PL/SQL代码的程序单元中(PL/SQL块),经过逻辑判断、循环等操作完成复杂的功能或者计算.。

    oracle实验五 PL/SQL编程

    【实验目的】 1. 熟悉PL/SQL的数据类型和书写规则 2. 熟悉控制结构和游标的使用 3. 编写和运行函数、过程和触发器

    PL/SQL Developer 7.1.5 注册版-3

    更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL...

    oracle-plsql

    引擎执行PL/SQL中的过程性语句,然后将SQL语句发送给数据库服务器来执行;再将结果返回给执行端 6、PL/SQL优势: 集成在数据库,运行是大量减少网络传输量和交互时间,提高系统运行效率 统一的和集中的业务逻辑处理...

    Oracle 11g SQL和PL SQL从入门到精通〖送源代码〗

    通过学习本书,读者不仅可以掌握Oracle常用工具Oracle Universal Installer、Net Comfiguration Assistant、SQL Developer、SQL*Plus的作用及使用方法,而且可以掌握SQL语句和PL/SQL的各种基础知识和高级特征(记录...

    PL/SQL windows使用,附带破解码与汉化文件

    在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。 PL/SQL windows使用,附带破解码与汉化文件

    PL/SQL Developer

    在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。MySQL 不支持 PL/SQL ,但支持Navicat Premium。

Global site tag (gtag.js) - Google Analytics