加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle-PL/SQL基础- 更新中

发布时间:2020-12-12 16:22:57 所属栏目:百科 来源:网络整理
导读:概述 PL/SQL简介 pl/sql(procedural language/sql)是Oracle在标准的sql语言上的扩展,pl/sql不仅允许嵌入Sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。 pl/sql是面向过程的语言

概述

PL/SQL简介

pl/sql(procedural language/sql)是Oracle在标准的sql语言上的扩展,pl/sql不仅允许嵌入Sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。

pl/sql是面向过程的语言。

不同数据库的SQL扩展

  • PL/SQL 是Oracle数据的SQL扩展。
  • SQL/PL 是DB2数据库的SQL扩展。
  • T-SQL 是SQL Server数据库的SQL扩展。

PL/SQL的必要性:

1、提高应用程序的运行性能。
2、模块化的设计思想。
3、减少网络传输量。
4、提高安全性。

PL/SQL编写规范

1、注释
单行注释–
sql>select * from emp where empno=7788; –取得员工信息

多行注释

/………………../

2、标识符号的命名规范

(1)当定义变量时,建议用v_作为前缀 v_sal。

(2)当定义常量时,建议用c_作为前缀 c_rate。

(3)当定义游标时,建议用_cursor作为后缀emp_cursor。

(4)当定义例外时,建议用e_作为前缀 e_error。

PL/SQL块

块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上 就是编写pl/sql块。要完成相对简单的应用功能,可能只需要编写一个pl/sql块;但是如果想要实现复杂的功能,可能需要在一个pl/sql块中嵌套其他的pl/sql块。

1、块结构示意图

pl/sql块由三个部分构成:定义部分、执行部分、例外处理部分。

declear:定义部分是从declare开始的,这部分是可选的。定义常量、变量、游标例外、复杂数据类型。

begin:执行部分是从begin开始的,这部分是必须的。

exception:例外处理部分是exception开始的,该部分可选的。

第一个PL/SQL程序

PLSQL中的命令窗口

SQL> set serveroutput on ;--打开输出
SQL> declare  
    --定义部分 ,如果没有定义,declare可以省略。 可选 ,定义常量、变量、游标、例外、复杂数据类型
  2  begin 
     --程序
  3  dbms_output.put_line('66666666');
  4  end;
  5  /

66666666

PL/SQL procedure successfully completed SQL> / --表示执行上一个PL/SQL块。 66666666 PL/SQL procedure successfully completed 

PL/SQL基础语法


程序结构

declare
    说明部分(变量说明光标声明例外说明)
begin 语句序列(DML语句) exception 例外处理语句 end ;
/

基本变量类型

说明部分

定义基本变量类型:char 、 varchar2、date、number、boolean、long

举例:

var1 char(20);
married boolean := false ;
psal number(7,2);
SQL> set serveroutput on ;
SQL> 
SQL> declare
  2   -- 定义基本变量类型
  3   v_name varchar2(20);--varchar2 字符串类型
  4   v_num  number(7,2);--number 数字类型
  5   v_date date ;--date 日期类型
  6  
  7   begin
  8  
  9     v_name :='小工匠';
 10     dbms_output.put_line('name:'||v_name);
 11  
 12     v_num :=999;
 13     dbms_output.put_line('num:'||v_num);
 14  
 15     v_date :=sysdate;
 16     dbms_output.put_line('数据库时间:'||v_date);
 17  
 18     dbms_output.put_line('明天的时间:'||(v_date+1));
 19   end ;
 20  /

name:小工匠
num:999
数据库时间:22-JUN-16
明天的时间:23-JUN-16

PL/SQL procedure successfully completed SQL> 

引用型变量

使用%TYPE类型的变量

举例

v_name emp.ename%type ;

记录型变量


if语句的使用

循环语句的使用

光标

光标的引入

光标的语法和第一个实例

实例:给员工涨工资

光标的属性和光标数的限制

带参数的光标

例外

例外的概念和系统例外

系统例外之no_data_found

系统例外之too_many_rows

系统例外之zero_divide

系统例外之value_error

自定义例外

案例

运用瀑布模型完成PLSQL程序的设计

案例:统计每年入职的员工人数

案例:员工涨工资问题

案例:涉及两张表的员工涨工资问题

案例:成绩统计(上)

案例:成绩统计(下)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读