PL/SQL(Procedural Language extensions to SQL)是Oracle 对标准 SQL 语言的过程化扩展,是专门用于各种环境下对 Oracle 数据库进行访问和开发的语言。

一、概述

  Oracle数据库对标准的SQL 语言进行了扩展,将 SQL 语言的非过程化与第三代开发语言的过程化相结合,产生了 PL/SQL 语言。在 PL/SQL 语言中,既可以通过SQL 语言实现对数据库的操作,也可以通过过程化语言中的复杂逻辑结构完成复杂的业务逻辑。

  在PL/SQL程序中,引入了变量、控制结构、函数、过程、包、触发器等一系列数据库对象,为进行复杂的数据库应用程序开发提供了可能。

  特点:

  [1] 与SQL语言紧密集成,支持SQL语句;

  [2] 减少网络流量,提高应用程序的运行性能;

  [3] 模块化程序设计功能,提高了系统可靠性;

  [4] 服务器端程序设计,可移植性好。

二、PL/SQL程序结构

1、PL/SQL块的组成

  PL/SQL程序的基本单元室语句块。一个完整的语句块由三部分组成:

DECLARE
声明部分,定义变量、数据类型、异常、局部子程序等
BEGIN
执行部分,实现块的功能
EXCEPTION
异常处理部分,处理程序执行过程中产生的异常
END

  注意:

  [1] 执行部分是必须的,声明和异常是可选的;

  [2] 可以在执行或异常处理部分嵌套其他的PL/SQL块;

  [3] 所有的块都是以“ END; ”结束的;

2、块的分类

  匿名块:动态生成,只能执行一次的块,不能由其他应用程序调用;

  命名块:一次编译可多次执行的PL/SQL程序,包括函数、存储过程、包、触发器等。他们编译后放在服务器中,由应用程序或系统在特定条件下调用执行。

三、词法单元

  所有PL/SQL程序都由词法单元构成,所谓词法单元就是一个字符序列,字符序列中的字符取自PL/SQL语言所允许的字符集。PL/SQL中的词法单元包括标识符、分隔符、常量值、注释等。

1、字符集

  字符集包括如下:

  [1] 所有大小写字母:包括A~Z,和 a~z;

  [2] 数字:包括0~9;

  [3] 空白符:包括制表符、空格和回车符;

  [4] 符号:+、-、*、/、<、>、=、~、!、@、#、$、%、^、&、(、)、_、|、{、}、[、]、?、;、:、,、.、"、'。

  注:字符集不区分大小写。

2、标识符

  标识符用于定义PL/SQL变量、常量、异常、游标名称、游标变量、参数、子程序名称和其他的程序单元名称等。

  标识符是以字母开头的,后边可以跟字母、数字、美元符号($)、井号(#)或下划线(_),其最大长度为30个字符,并且所有字符都是有效的。

  注意:如果标识符区分大小写、使用预留关键字或包含空格等特殊符号时,需用""括起来,称为引证标识符。

3、分隔符

  分隔符是指有特定含义的单个符号或组合符号。

4、常量值

  常量是指不能作为标识符的字符型、数字型、日期型和布尔型值。

  [1] 字符型:即以单引号引起来的字符串,在字符串中的字符区分大小写。如果字符串本身包含单引号,则用两个连续的单引号进行转义。如'he''s book'。

  [2] 数字型:分为整数与实数两类。

  [3] 布尔型:指预定义的布尔型变量的取值,包括 TRUE、FALSE、NULL三个值。

  [4] 日期型:表示日期值,其格式随日期类型格式不同而不同。

5、注释

  单行注释:以“--”开始,直到该行结尾;

  多行注释:以“/*”开始,以“*/”结束。

四、数据类型

PL/SQL 之 基础的更多相关文章

  1. Oracle数据库编程:PL/SQL编程基础

    2.PL/SQL编程基础: PL/SQL块:        declare        定义部分        begin        执行部分        exception        异 ...

  2. Oracle Pl/SQL编程基础

    Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言控制结构, 良好的兼容性, 处理运行错误. Pl/SQL语言基础 sql是关系数据库的基本操作语言. s ...

  3. oracle PL/SQL语法基础

    目录 数据类型 定义变量 PL/SQL控制结构 参考资料 Oracle10g数据类型总结 PL/SQL之基础篇 数据类型 学习总结 字符类型 char.nchar.varchar.nvarchar:有 ...

  4. 【PL/SQL编程基础】

    [PL/SQL编程基础]语法: declare 声明部分,例如定义变量.常量.游标 begin 程序编写,SQL语句 exception 处理异常 end: / 正斜杠表示执行程序快范例 -- Cre ...

  5. PL/SQL语言基础

    PL/SQL语言基础 进行PL/SQL编程前,要打开输出set serveroutput on 1.创建一个匿名PL/SQL块,将下列字符输出到屏幕:"My PL/SQL Block Wor ...

  6. PL/SQL编程基础(三):数据类型划分

    数据类型划分 在Oracle之中所提供的数据类型,一共分为四类: 标量类型(SCALAR,或称基本数据类型) 用于保存单个值,例如:字符串.数字.日期.布尔: 标量类型只是作为单一类型的数据存在,有的 ...

  7. PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)

    PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言. SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环).而PL/ ...

  8. PL/SQL编程基础——PL/SQL简介

    课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1. 了解PL/SQL的主要特点 2. 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库 ...

  9. Oracle PL/SQL语句基础学习笔记(上)

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL ...

  10. Oracle数据库之PL/SQL程序基础设计

    一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执 ...

随机推荐

  1. 2017广东工业大学程序设计竞赛决赛--Problem B: 占点游戏

    Description 众所周知的是,TMK特别容易迟到,终于在TMK某次又迟到了之后,Maple怒了,Maple大喊一声:"我要跟你决一死战!"然后Maple就跟TMK玩起了一个 ...

  2. zstuoj 4245 KI的斐波那契

    KI的斐波那契 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 550  Solved: 208 Description KI十分喜欢美丽而优雅的斐波那 ...

  3. 【BZOJ 3043】 3043: IncDec Sequence (差分)

    3043: IncDec Sequence Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 589  Solved: 332 Description 给 ...

  4. BZOJ 1030 [JSOI2007]文本生成器(AC自动机)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1030 [题目大意] 求出包含任意一个给定串的串数量 [题解] 我们求出不包含任意一个给 ...

  5. Educational Codeforces Round 12 F. Four Divisors 求小于x的素数个数(待解决)

    F. Four Divisors 题目连接: http://www.codeforces.com/contest/665/problem/F Description If an integer a i ...

  6. Codeforces Beta Round #8 A. Train and Peter KMP

    A. Train and Peter 题目连接: http://www.codeforces.com/contest/8/problem/A Description Peter likes to tr ...

  7. jquery datatables使用

    引入相应css 和js <link href="http://cdn.datatables.net/1.10.5/css/jquery.dataTables.css" rel ...

  8. mysql sql优化及注意事项

    sql优化分析 通过slow_log等方式可以捕获慢查询sql,然后就是减少其对io和cpu的使用(不合理的索引.不必要的数据访问和排序)当我们面对具体的sql时,首先查看其执行计划A.看其是否使用索 ...

  9. 探究rh6上mysql5.6的主从、半同步、GTID多线程、SSL认证主从复制

    http://407711169.blog.51cto.com/6616996/1203973/

  10. 获得sql server的table的表结构 -- 转到word中

    SQL语句: select syscolumns.name,systypes.name,syscolumns.length from syscolumns  join sysobjects on sy ...