使用PL/SQL

本文介绍了PL/SQL的基础知识,包括变量、常量、%type和%rowtype的使用,控制结构如if、case、loop、while和for,异常处理机制以及自定义函数的创建。内容详细阐述了PL/SQL的语法结构和优点,是学习Oracle数据库编程的好资源。
摘要由CSDN通过智能技术生成

1.PL/SQL 简介

  • PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言
  • PL/SQL 是对 SQL 的扩展
  • 支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构
  • 可用于创建存储过程、触发器和程序包,给SQL语句的执行添加程序逻辑
  • 与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性、灵活性和安全性

2.变量和常量

2.1变量

变量语法结构:

declare
	变量名  数据类型;
begin
    执行代码块内容;   
enddeclare 
  变量名1 数据类型;
  变量名2 数据类型
begin 
  给变量赋值
end

赋值方法:

  • 方式一:“:=”

  • 方式二:“select into 语句”

案例:

--声明一个变量,并赋值、打印
declare
  eno number(4);
  myEname varchar2(10);
begin
  eno:=7369;
  select ename into myEname from emp where empno=eno;
  dbms_output.put_line(myEname);
end;

-- 根据给定的员工编号查询员工名字,并输出。
declare
	sid number(7);          --声明变量 sid 用来保存员工编号(未初始化值)
	sname varchar(10);  --声明变量 sname 用来保存查询出来的员工名字,未初始化值
begin
	sid:=7499;                 --通过“:=”给变量 sid 赋值
	select ename into sname from emp where empno=sid;           --通过 select into 语句给 sname 变量赋值
	dbms_output.put_line('要查询的名字是:'||sname);              --打印出结果。
end;

--在声明变量的同时也可以给变量赋值,如:sid number(7):=7499;   


2.2常量

语法结构

declare
	变量名1 constant 数据类型 := 值;
begin
	执行代码块内容;
end

常量与变量的区别

  • 常量声明的时候要在数据类型前面加 constant 关键字,表示常量的意思;
  • 常量必须初始值,且值不能被修改;

案例:

--声明一个变量,将emp表中的ename 赋值到变量中并打印
declare 
    eno number(4):=7369;
    myEname varchar2(10);
    
begin
  select ename into myEname from emp where empno=eno;
  dbms_output.put_line('名字是' ||myEname);
end;



--根据给定的员工编号查询员工名字,并输出。
declare
	sid constant number(7) := 7499;     --声明常量 sid 用来保存员工编号,并且初始化值
	sname varchar(10);           --声明变量 sname 用来保存查询出来的员工名字,未初始化值
begin
	select ename into sname from emp where empno=sid;          --通过 select into 语句给 sname 变量赋值
	dbms_output.put_line('要查询的名字是:'||sname);            --打印出结果。
end;

3.%type与%rowtype

  • 用于引用数据库列的数据类型,以及表示表中一行的记录类型

3.1%type

  • 作用:用来引用数据表里面某个字段的数据类型;
  • %type - 引用变量和数据库列的数据类型
  • 通俗解释:当我们想要声明一个变量来保存表内某个字段值但是又不知道该变量用什么数据类型的时候,我们就可以引用表内该字段的数据类型来作为变量的数据类型。

案例:

--案例演示:根据员工编号查询出员工的姓名和入职日期。
declaresid number(7) :=7499
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值