Oracle中PL/SQL简介、基本语法以及数据类型

Oracle中PL/SQL简介、基本语法以及数据类型

一.PL/SQL简介。

  Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控制为一体的强大语言,PL/SQL不但支持更多的数据类型,拥有自身的变量申明,赋值语句,而且还有条件,循环等流程控制语句。过程控制结构与SQL数据处理能力无缝的结合形成了强大的编程语言,可以创建过程和函数以及程序包。

  PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性的发送给服务器,由服务器和自身引擎两个执行器执行代码。如下图:

  

  优点:

  • 支持SQL

    SQL是访问数据库的标准语言,通过SQL命令,用户可以操纵数据库的数据。PL/SQL支持所有的SQL数据操纵命令、游标控制命令、事务控制命令、SQL函数、运算符和伪列。

  同时PL/SQL和SQL语言紧密集成,PL/SQL支持所有的SQL数据类型和NULL值。

  • 支持面向对象编程

    PL/SQL支持面向对象的编程,在PL/SQL中可以创建类型,可以对类型进行继承,可以在子程序中重载方法等。

  • 更好的性能

    SQL是非过程语言,只能一条一条的执行,而PL/SQL把一个PL/SQL统一进行编译后执行,同时还可以把编译好的PL/SQL块存储起来,以备重用,减少了应用程序和服务器之间的通      信时间,所以PL/SQL是高效而快速的。

  • 可移植性

    使用PL/SQL编写的应用程序语言,可以移植到任何操作平台的ORACLE服务器,同时还可以编写可移植程序库,在不同环境中使用。

  • 安全性

    可以通过存储过程对客户机和服务器之间的应用程序逻辑进行分割,这样可以限制对ORACLE数据库的访问,数据库还可以授权和撤销其他用户的访问权利。

二.PL/SQL基本语法。

  PL/SQL是一种块结构的语言。一个PL/SQL包含了一个或多个逻辑快,逻辑块中可以声明变量、写程序主体、还可以捕获异常和异常处理。每个逻辑快分为三个部分,语法结构如下:

    PL/SQL的语法结构



  [DECLARE

      --declaration statements]                变量或常量声明部分。可选。

  BEGIN

      --executable statements         执行部分。BEGIN开始,END结束(加;号)。必须写。

  [EXCEPTION

      --exception statements]         异常处理部分。可选。作用于java中异常的作用和机制都一样。

  END;

  注意:

  • LP/SQL是一种编程语言,有自己独有的数据类型,变量声明和赋值以及流程控制语句。
  • 对大小写不敏感,但是为了规范:关键字全部大写,其余部分小写。
  • 每一条语句以分号结束。


    PL/SQL特殊符号说明:

  

三.变量和常量。

  声明变量:

  变量名 数据类型[:=初始值];

DECLARE
a int;
BEGIN
 select MGR into a from emp where empno=7369;
END;

  变量名 数据类型 DEFAULT 初始值;

DECLARE
b int default 0;
BEGIN
 select MGR into b from emp where empno=7369;
END;

  声明普通常量:

  常量名 CONSTANT 数据类型 :=常量值;

set serveroutput on;  --设置向控制台输出
DECLARE
c CONSTANT int:=666;
BEGIN
 dbms_output.put_line(c);
END;

四.PL/SQL数据类型。

  • 标量数据类型  

    前面在建表时,学习过Oracle SQL的数据类型,PL/SQL不但支持这些数据类型,还具备自身的数据类型。如下图:

  

  

  • 属性数据类型

    当声明一个变量的值是数据库的一行或者是数据库的某列时,可以直接使用属性类型来声明。ORACLE有两种属性数据类型:%TYPE和%ROWTYPE

    %ROWTYPE

      引用数据库表中的一行作为数据类型,可以使用" . " 来访问记录中的属性。

      实例:

set serveroutput on;                                      结果:                                                  
DECLARE                                                    EMPNO  ENAME  SAL
  myrow EMP%ROWTYPE;                                             7369  SMITH 800
BEGIN
  select * into myrow from emp where empno=7369;
  dbms_output.put_line(‘EMPNO ENAME SAL‘);
  dbms_output.put_line(myrow.empno||‘ ‘||myrow.ename||‘ ‘||myrow.sal);
END;

    %TYPE

      引用某个变量或者数据库的列的类型作为某变量的数据类型。

      实例:

set serveroutput on;
DECLARE                                              说明:
  sal emp.sal%TYPE;                        
  mytype NUMBER(4):=1000;                                          定义sal的数据类型为emp表中sal的数据类型。
  sumsal mytype%TYPE;
BEGIN
  select SAL into sal from emp where empno=7499;                             定义sumsal的数据类型为mytype的数据类型。
  sumsal:=sal+mytype;
  dbms_output.put_line(sumsal);
END;
时间: 2024-12-27 20:27:20

Oracle中PL/SQL简介、基本语法以及数据类型的相关文章

Oracle中PL/SQL的执行部分和各种流程控制

Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: set serveroutput on; accept abc prompt '请输入abc的值'; DECLARE a int:= &abc; BEGIN dbms_output.put_line(a); END; 查询赋值举例: set serveroutput on; DECLARE str

Oracle中PL/SQL的例题:-- 输入部门编号,在控制台打印这个部门的名称,总人数,平均工资(基本工资+奖金)

declare -- 声明record类型对象 type emp_record_type is record ( v_dname dept.dname%type, v_count emp.empno%type, v_avgesal emp.sal%type ); -- 声明record类型的变量 v_emp emp_record_type; begin -- 查询数据 ,给变量赋值 select d.dname,count(e.ename),avg(sal+nvl(comm,0)) into v

PL/SQL简介与基本语法

PL/SQL的简介: PLSQL 是Oracle公司在SQL基础上进行扩展而成的一种过程语言.PLSQL提供了典型的高级语言特 性,包括封装,例外处理机制,信息隐藏,面向对象等:并把最新的编程思想带到了数据库服务器和工具 集中. 与Java, C#相比 ,PLSQL的优势是:SQL语言可以直接写到PLSQL的"块"中或者是PLSQL的过程. 函数中.没有必要向java那样先创建Statement对象来执行SQL; 这使得PLSQL成为很强大的事务处理语 言,即:使用SQL来处理数据,使

PL/SQL简介

本节要点: 什么是PL/SQL PL/SQL简介 PL/SQL 的优点 PL/SQL 的体系结构 PL/SQL 块简介 PL/SQL中的变量和常量 变量和常量的定义 PL/SQL 支持的数据类型 表达式 数值表达式 关系表达式 逻辑表达式 异常处理 处理异常的语法 预定义异常 预定义异常 自定义异常 1         什么是PL/SQL 1.1         PL/SQL简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对

Oracle之PL/SQL学习笔记

自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家批评指正. PL/SQL定义:PL/SQL是由Oracle开发,专门用于Oracle的程序设计语言. PL---Procedural Language. SQL—Structure QueryLanguage.PL/SQL包括过程化语句和SQL语句     PL/SQL的单位:块. 一个块中可以嵌套

Oracle实践--PL/SQL基础之表分区

PL/SQL基础入门之表分区 PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. ---------------------------------------------

oracle中动态SQL使用详细介绍

Oracle编译PL/SQL程序块分为两个种:通常静态SQL采用前一种编译方式,而动态SQL采用后一种编译方式,需要了解的朋友可以参考下 1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型:另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进

Oracle实践--PL/SQL基础之代码块

PL/SQL基础入门之代码块 PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. 优点: 1.       支持SQL,可以使用:DML,DCL,游标控制和SQL运算符 2

PL/SQL程序设计基础语法详解(一)

一.什么是PL/SQL(Procedure Language/SQL) 概念:PLSQL是Oracle对sql语言的过程化扩展 指在SQL命令语言中增加了过程处理语句(如分支.循环等),使SQL语言具有过程处理能力. PL/SQL的结构: declare 说明部分 (变量说明,光标申明,例外说明 ] begin 语句序列 (DML语句]- exception 例外处理语句 End; 简单的PL/SQL程序 如果是在命令行中需要使用 set serveroutput on先打开显示 declare