oracle PL/SQL编程基础

       

目录

1 PL/SQL介绍        

1.1 PL/SQL基础结构

1.2 PL/SQL 注释

1.3 PL/SQL常量和变量

1.4条件语句

1.5 循环语句


过完节由于疫情公司没有进行上班,在收拾房屋的过程中找到一本关于oracle基础的书籍,就想着看巩固下oracle基础,在此进行记录。

1 PL/SQL介绍        

        PL/SQL是在日常工作中,使用oracle数据库常用的一种编程语言,是oracle公司对标准SQL语言的过程化扩展,在SQL语句的基础上增加了编程语言的特点。主要是把数据操作和查询语句放在PL/SQL的代码块中,通过逻辑判断实现复杂的业务逻辑或者功能。

1.1 PL/SQL基础结构

 在编程过程中,PL/SQL是由声明部分、程序代码、异常处理部分组成,主要是以块为基础单位。语法结构如下:

  declare        --声明一些变量、常量、数据类型等

   begin

      -- 主要程序体。主要是函数或者存储过程

   exception     --  异常处理 当编写的代码块出现异常时,可以在此处编写处理异常代码

   end;             -- 主程序体结束。

注意:在PL/SQL块中每条语句都必须以分号进行结束,每一个块由declare或者begin开始,以end结束。

1.2 PL/SQL 注释

在PL/SQL程序块中有时候内容会比较长,这时候添加注释是一个好的编程习惯,这样可以提高程序的可读性。在PL/SQL程序块中注释分为单行注释和多行注释

单行注释:有连接字符-- 开始,注释范围为从连接字符开始,到行的末尾

多行注释:在编写程序块的过程中,有时候由于业务逻辑较为复杂,则需要的注释可能超过一行,这时候就要使用多行注释。有/* 开头 */结束

1.3 PL/SQL常量和变量

在编写PL/SQL程序块的过程中,经常使用到常量和变量,这时候必须要声明这些常量和变量,然后才能进行使用。

变量:在程序执行的过程中其值时可以变化的数据存储结构,定义变量需要定义变量名和数据类型,同时也可以为变量设置初始值

语法:变量名 数据类型(变量长度):=初始值   declare name varchar2(30):='是是是'

常量:在程序的执行过程中不可改变的数据存储结构

语法:常量名 constant 数据类型:=常量值 year constant varchar2(32):='2020'

命名规则

  1. 名称必须以字符开头,长度不超过30字符
  2. 名称不能包含减号或者空格,不能使用PL/SQL编程关键字
  3. 标识符不区分大小写,并且可以包含数字、下划线等

在定义常量和变量时,需要声明其为哪种数据类型,对数据类型进行简单介绍

1 字符类型:字符类型变量主要用来存储字符串或者字符数据,主要包括把人varchar2、char、long、nchar和nvarchar2等。

声明语法:varchar2(lenggth)   

varchar2 最大可以存储32767个字节,char类型最大长度同为32767个字节,与varchar2不同的是长度可以不进行指定,默认为1。如果赋给char类型的值不足时,则后面用空格自动补全。数据库类型的varchar2最大长度为4000个字节,char2000字节,long长度最大可达到2G。

2 数值类型:主要用来存储整数或者实数,包含number、INTEGER、BINARY_FLOAT等

NUMBER(p[,s]):1-22字节。P(Precison)取值范围1到38,S(Scale)取值范围-84到127.可以存放数据范围为10^130~10^126(不包含此值).正值s为小数位数,负值s表示四舍五入到小数点左部多少位。
例:123.89  NUMBER(6,1) 123.9 NUMBER(6,-1) 120

INTEGER类型:INTEGER是NUMBER的子类型,它等同于NUMBER(38,0),用来存储整数。若插入、更新的数值有小数,则会被四舍五入。

Oracle 数据库提供了专为浮点数的两种数值数据类型:

BINARY_FLOAT 是 32 位、 单精度浮点数字数据类型。可以支持至少6位精度,每个 BINARY_FLOAT 的值需要 5 个字节,包括长度字节。

BINARY_DOUBLE 是为 64 位,双精度浮点数字数据类型。每个 BINARY_DOUBLE 的值需要 9 个字节,包括长度字节。

在数字的列中,浮点数有小数精度。在 BINARY_FLOAT 或 BINARY_DOUBLE 的列中,浮点数有二进制的精度。二进制浮点数支持的特殊值无穷大和 NaN (不是数字)。

3 布尔类型:主要用于控制程序流程,一个布尔类型的值可以是true、false、null。

4 %type类型或者%rowtype 类型

在PL/SQL编程过程中,为了保持某个变量的数据类型和表中某一个字段类型一致,可以定义%type。%type类型隐式的将变量的数据类型指定为表中对应列的数据类型

语法:variable_name table_name.column_name%type  

如:

 v_Name students.name%TYPE;

通过使用%TYPE,v_name变量将同students表的name列的类型相同(可以理解为将两者邦定起来)。

%rowtype :在编程语言过程中%type主要针对表中的某一列,%rowtype则针对表中的一行数据,使用%rowtype定义的变量可以存储表中的一行数据。

语法:variable_name table_name%rowtype

如:

v_RoomRecord rooms%ROWTYPE;

将定义一个记录,该记录中的字段将与rooms表中的列相对应。

5 记录类型

记录类型与表的行结构相似,记录类型定的的变量可以存储一个或者多个字段组成的一行数据,而不必将每一列都单独列出

语法:type record_name is record(filed_name data_type)

record_name 记录类型的名称

is record 表示创建的时记录类型

filed_name 记录类型的字段名

data_type  合法的数据类型

type new_type is record(empno number(4),rname varchar2(10)); -- 定义记录类型

vemp new_type --使用该类型定义变量

select empno,ename into vemp from table_name -- 复制

1.4条件语句

在PL/SQL编程的过程中,需要进行逻辑判断,这时候就要使用条件语句进行判断。

if 条件语句

语法:if(条件表达式) then 

           (执行语句1)

           elseif (条件表达式2) then

           (执行语句2)  .......

           else 

            end if;

注意:elseif 与其他编程语言的else if 有区别

case 条件语句

语法: case(变量)

             when (表达式1) then  值 1

             when (表达式2) then  值 2

             when (表达式n) then  值 n

             else  值n+1

             end;

搜索case 表达式

            case

                  when condtion1 then  result1;

                  when condtion2 then  result2;

                   when condtionN then  resultN;

             else  default result;

             end case;

1.5 循环语句

循环是程序控制结构,可以进行遍历一系列PL/SQL语句,并可以在0次和无限次之间执行这些语句。循环语句一般由循环体和结束条件组成,循环体指重复执行的语句,结束条件则用于终止循环。

1 循环语句loop .......exit .......end

此语句重复执行循环体中的程序块,直到执行到exit退出循环

语法: loop

                  (程序块1)

                    if(条件表达式) then

                    exit

                    end if

                  (程序块2)

             end loop;

如:

declare
  var1 integer:=1
  var2 integer:=2
begin
  loop
     var2:=var1+var2
     if var2 = 50 then
     exit
     end if;
  end loop;
end; 

2循环语句loop .......exit  when.......end

此语句重复执行循环体中的程序块,直到执行到exit when 后面的判断语句退出循环

语法: loop

                  (程序块1)

                    exit when(表达式)

                 (程序块2)

             end loop;

declare
  var1 integer:=1
  var2 integer:=2
begin
  loop
     var2:=var1+var2
     exit when var2 = 50;
     var1:=var1+1
  end loop;
end; 

3 while 循环语句

循环语句while..... loop..... end loop 的功能是当while后面的条件语句成立时,重复执行循环体的程序块

while(条件表达式)

 loop

      (程序块)

end loop

参考:oracle 从入门到精通

下一篇 oracle游标 https://blog.csdn.net/lilongwangyamin/article/details/104391059

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值