使用PL/SQL
1.PL/SQL 简介
- PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言
- PL/SQL 是对 SQL 的扩展
- 支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构
- 可用于创建存储过程、触发器和程序包,给SQL语句的执行添加程序逻辑
- 与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性、灵活性和安全性
2.变量和常量
2.1变量
变量语法结构:
declare
变量名 数据类型;
begin
执行代码块内容;
end;
declare
变量名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