PL/SQL简单学习

1.PL/SQL块的组成部分:

① 声明部分:该部分包含了变量和常量的定义,以及变量和常量的初始值定义,这部分由关键字declare开始,如果PL/SQL块中不需要声明变量或常量,该部分可以省略。

② 执行部分:执行部分是PL/SQL的执行指定部分,由关键字begin开始,关键字end结尾。

所有可执行的SQL都放在这一部分,该部分不能省略,end关键字后面使用分号结尾。

③ 异常处理部分:该部分是可选的,该部分使用exception关键字将可执行部分分为两个部分,

一部分是正常运行的程序,一旦出现异常就跳转到异常部分执行。

2.PL/SQL中符号的声明:

① := → 赋值运算符;

--  → 单行注释;

..  → 范围操作符;eg.1..5 → 表示1到5

||  → 字符串连接 ;

/* */  → 多行注释;

② 算术运算符: + , - , * , /  ,  **(求幂运算,eg. 3**2=9)

③ 关系运算符: > , < , >=  , <=  , <>  , !=

④ 逻辑运算符: and , or , not

3.变量的声明:

eg.

declare name nvarchar2(20) := 'hanchao';

-- nvarchar(20)→数据类型;name→变量名;‘hanchao'变量的默认值;

begin

dbms_output.put_line(name);

-- 用于将变量输出到控制台上,如果没有输出可以通过set serveroutput on 设置输出。

end;

/ -- 用于执行上面的语句。

4.变量的赋值:

① :=

② select ... into 变量名 from ...

[注意事项:查询结果只能是一行,如果是多行或没有行,则会引发异常]

eg.

declare num1 int;

begin

num1 := 10;

select 1 into num1 from dual;

dbms_output.put_line(num1);

end;

/

5.声明常量:通过constant关键字来声明常量

declare pi constant float := 3.14;

r int := 4;

area float;

begin

area := pi * r * r;

dbms_output.put_line('area: ' || area);

end;

/

6.特殊数据类型:

① %ROWTYPE : 该数据类型表示一条记录,相当于java中的一个对象,可以通过 “.”(点)操作符访问记录中的属性。

eg.

declare emprow emp%rowtype ;-- emp为表名

begin

select * into emprow from emp where empno = 7934;

dbms_output.put_line(emprow.ename);

end;

/

②%TYPE : 引用某个变量或数据库的列作为数据类型来声明一个变量。

eg.

declare myname emp.ename%type; -- 以表emp的ename列为数据类型

begin

select ename into myname from emp where empno = 7934;

dbms_output.put_line(myname);

end;

/

7.条件分支语句:

declare value1 number(10) := 10;

begin

if value1 > 10 then

dbms_output.put_line(' > 10');

elsif value1 = 10 then

dbms_output.put_line(' = 10 ');

else

dbms_output.put_line('< 10') ;

end if;

end;

/

8.循环结构

①loop ... end loop 循环

eg1.

declare temp number(3) := 0;

total number(5) := 0;

begin

loop

temp := temp + 1;

total := total + temp;

if temp >= 100 then

exit;

end if;

end loop;

dbms_output.put_line('total: ' || to_char(total));

end;

/

eg2.

declare temp number(3) := 0;

total number(5) := 0;

begin

loop

temp := temp + 1;

total := total + temp;

exit when temp >= 100;

end loop;

dbms_output.put_line('total : ' || to_char(total));

end;

/

②while 循环

declare temp number(3) := 0;

total number(5) := 0;

begin

while temp < 100

loop

temp := temp + 1;

total := total + temp;

end loop;

dbms_output.put_line('total : ' || to_char(total));

end;

/

③for循环

declare temp number(3) := 0;

total number(5) := 0;

begin

for temp in 0..100

loop

total := total + temp;

end loop;

dbms_output.put_line(' total : '|| to_char(total));

end;

/

转载于:https://blog.51cto.com/hanchaohan/1340620

PL/SQL编程的简单学习相关推荐

  1. 视频教程-赵强老师:Oracle数据库从10g到11g(4)PL/SQL编程基础-Oracle

    赵强老师:Oracle数据库从10g到11g(4)PL/SQL编程基础 毕业于清华大学,拥有超过13年的工作经验. Oracle认证讲师,拥有6年以上授课经验.精通Oracle数据库.中间(Weblo ...

  2. Oracle学习笔记(最重要的是PL/SQL编程)

    一:Oracle认证,与其它数据库比较,安装 Oracle安装会自动的生成sys用户和system用户: (1) sys用户是超级用户,具有最高权限,具有sysdba角色,有create databa ...

  3. [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)...

    [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天才在于积累!) --通过知识共享树立个人品牌.   继上七篇:            [推荐]ORACLE P ...

  4. pl/sql编程基础

    PL/SQL 1.过程.函数.触发器是pl/sql编写的 2.过程.函数.触发器是存放在oracle数据库中的 3.pl/sql是非常强大的过程化语言 4.过程.函数.触发器可以在java程序中调用 ...

  5. ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)

    原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!)   继上篇:ORACLE P ...

  6. [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)...

    [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) 原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之 ...

  7. oracle PL/SQL编程基础

    目录 1 PL/SQL介绍 1.1 PL/SQL基础结构 1.2 PL/SQL 注释 1.3 PL/SQL常量和变量 1.4条件语句 1.5 循环语句 过完节由于疫情公司没有进行上班,在收拾房屋的过程 ...

  8. Oracle 实验六:PL/SQL编程基础(1)

    实验六:PL/SQL编程基础(1) 一.实验目的 1.熟悉掌握PL/SQL编程中的变量定义语句 2.熟悉掌握PL/SQL编程中的条件语句和循环语句等流程控制语句. 3.能熟练使用上述基本语句编写PL/ ...

  9. ORACLE PL/SQL编程

    PL/SQL程序设计 什么是PL/SQL PL/SQL是 Procedure Language & Structured Query Language 的缩写.PL/SQL是对SQL语言存储过 ...

最新文章

  1. 16岁日本神童打造日版「健康码」,追踪用户行动数据抗击疫情
  2. JDK文档中关于Semaphore的正确使用以及使用场景
  3. SQL 与 ORACLE 的比较
  4. 箭头函数和普通函数有什么区别?
  5. 吴恩达机器学习作业 6.支持向量机
  6. Oracle virtual box 安装系统黑屏问题
  7. grpc+protobuf 的C++ service 实例解析
  8. 执行力 - 快速反应
  9. 常熟计算机专业工资多少,常熟学计算机,常熟学计算机哪里好,常熟学计算机一般工资能拿多少 - IT教育频道...
  10. java email 的格式_使用Java将电子邮件转换为原始格式
  11. sfc流程图怎么画_如何使用gxworks2创建简单的顺序功能图sfc
  12. 百度(高德、GG歌)离线地图开发环境搭建【离线地图开发源代码】
  13. 06-Docker数据管理实践
  14. c语言考试题库大一下学期基础,c语言考试题(全国c语言二级考试题库)
  15. Java高性能的编程技巧
  16. 订单减库存 java_高并发场景-订单库存防止超卖
  17. 吃完饭后,到底是躺着、坐着、站着还是运动?看完终于不纠结了
  18. 从初级到资深:程序员的职业生涯思考与可迁移技能培养
  19. 苹果圆圈怎么设置_苹果手机白色圆圈怎么弄
  20. Java模拟项目开发(快递柜)

热门文章

  1. 利用strut2标签自动生成form前端验证代码
  2. 望图知意-Yahoo VS 3721
  3. 五大react生命周期使用注意事项,绝对干货
  4. 诗与远方:无题(三十五)- 曾经写给妹子的一首诗
  5. Python学习笔记之函数(五)
  6. C# 关闭当前窗口打开另一窗口
  7. 栈的应用——表达式求值(双栈)
  8. connection url mysql_JDBC URL格式及其参数说明 oracle mysql
  9. mysql事务的acid、三种并发问题与四种隔离级别
  10. imx6q 开发android,SAIL-IMX6Q ANDROID开发环境搭建与系统编译