Pl/SQL 编程

Posted ✧*꧁一品堂.技术学习笔记꧂*✧.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pl/SQL 编程相关的知识,希望对你有一定的参考价值。

Pl/SQL 编程

一:前言

image

 

 

二:Pl/Sql 概述

image

 

二     ——  1: Pl/Sql块结构

image

  1declare  2 --声明部分,可选
  3 begin
  4 --执行部分,必须
  5 [exception]
  6 --异常处理部分,可选
  7 end

imageimage

  1 SQL> set serveroutput on;
  2 SQL>
  3 SQL> declare
  4   2  a int:=10;
  5   3  b int:=200;
  6   4  c number;
  7   5  begin
  8   6    c:=(a+b)/(a-b);
  9   7    dbms_output.put_line(c);
 10   8  exception
 11   9     when zero_divide then
 12  10       dbms_output.put_line(\'除数不许为零\');
 13  11   end;
 14  12  /
 15 
 16 -1.10526315789473684210526315789473684211
 17 
 18 PL/SQL procedure successfully completed
 19 
 20 SQL>
View Code

image

image

 

二     ——  2:  代码注释和标识符

image

二     —— 2_____1:单行注释

image

  1 SQL>  set serveroutput on;       --在服务器端 输出结果
  2 SQL>  declare
  3   2
  4   3     Num_sal number;          --- 声明一个数值变量
  5   4     Var_ename varchar(20);   --- 声明一个字符串变量
  6   5   begin
  7   6      select e.ename,e.sal into Var_ename,Num_sal  from emp e where empno=7839;  --检索指定的值并储存到变量中
  8   7      dbms_output.put_line(Var_ename||\'工资是\'||Num_sal);
  9   8  end;
 10   9
 11  10
 12  11  /
 13 
 14 KING工资是5000
 15 
 16 PL/SQL procedure successfully completed
View Code

image

image

 

 

二     —— 2_____2:多行注释

image

  1 set serveroutput on;      /*在服务器端 输出结果*/
  2  declare
  3    Num_sal number;
  4    Var_ename varchar2(20);
  5  begin
  6    /*检索指定的值并储存到变量中*/
  7       select e.ename,e.sal into Var_ename,Num_sal  from emp e where empno=7839;  --检索指定的值并储存到变量中
  8     dbms_output.put_line(Var_ename||\'工资是\'||Num_sal);
  9 end;
 10 /
View Code

image

image

 

 

 

二     —— 2_____3:PL/SQL字符集

image

 

 

三:数据类型与定义变量和常量

imageimage

 

三     —— 1:基本数据类型

image

三     —— 1_____1:数值类型

image

 

 

 

三     —— 1_____2:字符类型

image

image

 

三     —— 1_____3:日期类型

image

 

 

 

三     —— 1_____4:布尔类型

image

 

三     —— 2 :特殊数据类型

image

 

三     —— 2_____1: %TYPE 类型

image

image

image

image

  1 SQL>  set serveroutput on      /*在服务器端 输出结果*/
  2 SQL>  declare
  3   2     var_ename emp.ename%type; /*声明与ename 列类型相同的变量*/
  4   3     var_job   emp.job%type;   /*声明与job列类型相同的变量*/
  5   4   begin
  6   5      select ename,job into var_ename,var_job from emp where empno=7839 ;/*检索数据,并保存在变量中*/
  7   6      dbms_output.put_line(var_ename||\'工资是\'||var_job);
  8   7  end;
  9   8  /
 10 
 11 KING工资是PRESIDENT
 12 
 13 PL/SQL procedure successfully completed
View Code

image

 

image

 

 

三     —— 2_____2:  record  类型

image

image

image

  1 set serveroutput on  /**/
  2 declare
  3   type emp_type is record
  4    (
  5     var_ename varchar2(20),  /*定义字段--成员变量  */
  6     var_job varchar2(20),
  7     var_sal number
  8    );
  9    empinfo emp_type;  /*定义变量*/
 10 begin
 11   select ename,job,sal into empinfo from emp where empno=7839 ;/*检索数据*/
 12     dbms_output.put_line( \'雇员\'||empinfo.var_ename||\'的职位是\'||empinfo.var_job||\'、工资是\'||empinfo.var_sal);
 13 
 14 end;
 15 /
View Code

image

 

 

 

三     —— 2_____3:   %rowtype 类型

image

image

  1 SQL> set serveroutput  on
  2 SQL> declare
  3   2       rowVar_emp emp%rowtype;/*定义能够储存emp表中一行数据的变量 rowVar_emp*/
  4   3  begin
  5   4    select * into rowVar_emp from emp where empno=7839 ;/*检索数据*/
  6   5      dbms_output.put_line( \'雇员\'||rowVar_emp.ename||\'的职位是\'||rowVar_emp.job||\'、工资是\'||rowVar_emp.sal);
  7   6
  8   7  end;
  9   8  /
 10 
 11 雇员KING的职位是PRESIDENT、工资是5000
 12 
 13 PL/SQL procedure successfully completed
 14 
 15 SQL>
View Code

image

image

三     —— 3: 定义变量和常量

image

 

 

四  :流程控制语句

image

 

四    —— 1:选择语句   if …then 语句

image

image

  1 SQL> set serveroutput on
  2 SQL> declare
  3   2    var_name1 varchar2(50); --//定义2个字符串变量
  4   3    var_name2 varchar2(50);
  5   4
  6   5  begin
  7   6    var_name1 :=\'East\';    --//给2个变量赋值
  8   7    var_name2 :=\'xiaoke\';
  9   8
 10   9    if length(var_name1)<length(var_name2) then
 11  10      /*输出比较后的结果*/
 12  11      dbms_output.put_line(\'字符串 “\'||var_name1||\'”的长度比字符串“\'||var_name2||\'”的长度小\');
 13  12     end if;
 14  13   end;
 15  14  /
 16 
 17 字符串 “East”的长度比字符串“xiaoke”的长度小
 18 
 19 PL/SQL procedure successfully completed
 20 
 21 SQL>
View Code

image

image

 

 

四    ——1_____ 2:选择语句   if …then … else  语句

image

image

  1 SQL> set serveroutput on
  2 SQL> declare
  3   2   age int:=55;/*定义整型变量并赋值*/
  4   3  begin
  5   4    if age >=56 then
  6   5      dbms_output.put_line(\'您可以申请退休了!\');
  7   6    else
  8   7       dbms_output.put_line(\'您小于56岁,不可以申请退休了!\');
  9   8    end if;
 10   9  end;
 11  10  /
 12 
 13 您小于56岁,不可以申请退休了!
 14 
 15 PL/SQL procedure successfully completed
 16 
View Code

image

 

 

四    ——1_____3:选择语句   if …then … elseif  语句

image

image