PL/SQL语言基础

来源:互联网 发布:配置虚拟机网络环境 编辑:程序博客网 时间:2024/05/16 07:24

     SQL语言只是用来作为数据库的一种访问语言,而不是程序设计语言,但只有程序语言才能
用于应用软件开发.PL/SQL(Procedural Language/SQL)是Oracle在标准SQL语言上进行过
程扩展后形成的程序设计语言.
    类似于其他编程语言,PL/SQL也有自身的特点和功能.它不仅允许嵌入SQL语句,而且允许定义
变量和常量;允许使用条件语句和循环语句;允许使用例外来处理各种错误允许在各种数据库操
作情况(触发事件)下隐含地执行一个PL/SQL程序,进而完成特殊任务.


  块的类型:
*匿名块(anonymous):通常都是动态生成的,只能执行一次,不存储在数据库中.
*命名块(named):是一种带有标签的匿名块,标签为块指定一个名称.
*子程序(subprogram):是可以存储在数据库中的过程(procedudre),函数(function),程序包
(package).生成之后可以被多次执行,可以在外部的程序中通过调用来执行.
*触发器(trigger):是一种存储在数据库中的带名块,生成之后可以被多次执行,对相应的触发
事件(trigger event)发生时就被自动执行.触发事件一般是指对特定的数据库表,视图进行的操
作,如INSERT,UPDATE,DELETE等(称为DML触发器);或者指数据库级的操作,如关闭,启动,登录,
退出数据库,创建对象,修改对象,删除对象等(称为系级触发器).

程序结构
程序化,模块化
    PL/SQL程序是由3个基本部分组成;声明部分(declaretive section),执行部分(executeable section),异常部分(exception section).其中,
只有执行部分是必须的,声明部分,异常处理都是可选的.
**声明部分: 以DECLARE开始,在该部分定义程序中要用的变量,常量,函数,游标,异常处理名称等.PL/SQL程序中要使用的所有定义必须在声明部分中
  进行定义.
**执行部分: 以BEGIN开始,END结束.执行部分包含了对数据库操作语句的各种流程控制语句.执行部分必须至少包含一条执行语句.
**异常处理部分: 包含在执行部分里,以EXCEPTION开始到END结束,对程序中产生的异常进行处理,提高PL/SQL程序的健壮性.将异常部分与主体部分进
  行分离,可以更好的提高程序的可读性.建议大家都养成写异常处理的良好习惯.
语法:
   DECLARE
       主块声明部分
   BEGIN
       主块执行部分
       DECLARE
         子块声明部分
       BEGIN
         子块执行部分
      EXCEPTION
         子块异常处理部分
      END;
   EXCEPTION
     主块异常处理部分
   END;
语言字符集,常用符号
  
和其他的语言一样,PL/SQL包含字符集(character set),保留字(reserved words),标点(punctuation).PL/SQL的字符集(既允许使用的)包括:
*大写字母A-Z和小写字母a-z
*数字0~9
*符号(,),+,-,*,/,<,>,=,!,~,^,;,:,',@,#,#,_,|,{,},?,[,]
*制表符,空格符,回车符等非显示的空间符号.
 其中一些符号用于标识,一些符号用于做算术运算或关系运算.
分界符: PL/SQL语言是一种形式自由的语言.任意数量的空白(空格,空行)都起着分界符的作用或被忽略.
标识符: 标识符由一个字母开始,后面选择性的跟随任意多的字母,数字,货币符号($),下划线(_),#等符号组成.不允许空格,斜线(/),短横线(-),&,%最大长度为30个字符.
保留字: 有些标识符对于PL/SQL来说是具有特殊意义的,他们被称为保留字,如:BEGIN,END,SELECT,FROM ,FRO,LOOP等.自定义标识符时不能使用这些保留字,否则就非法
        编译时会出错.
预定义标识符: 预定义标识符是在程序包STANDARD中预先声明的全局变量标识符,如异常INVALID_NUMBER,是可以被重新声明的.如果重新声明,就会覆盖全局声明,容易引起
             模糊错误,给程序调式造成困难。
文字:  文字是指不能成为标识符的字符,数字.日期已经布尔值.

常量与变量
声明常量,变量的语法如下:

identifier_name [CONSTANT] data_type [NOT NULL] [:= value_expression]
其中,identifier_name是要声明的变量名,变量的名称;data_type是指定数据类型; :=是赋值运算符;value_expression是赋予的值(表达式,可以是文本或其他变量,函数);
如果有CONSTANT则表明是一个常量;如果有NOT NULL,则表示声明的变量不能为空.
注意:在PL/SQL中每行只能声明一个变量或常量.在引用一个变量或常量之前,必须先声明该变量或常量.
例:
声明                                                                                   说明
v_birthday DATE                                                             声明一个变量名为v_birthday,类型为DATE的变量
v_blood_type CHAR :='O'                                             声明一个CHAR数据类型v_blood_type,并初始化赋予值为O
c_limit CONSTANT NUMBER(8.2) :=5000.00          声明一个常量

原创粉丝点击