PL/SQL程序(一)

什么是PL/SQL

PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。是面向过程的语言。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。PL/SQL 只有 Oracle 数据库有。 MySQL 目前不支持 PL/SQL 的。

打印Hello World

以declare开头,它是声明的意思,后边跟的是说明部分。

程序以begin开头,以end;结束

/ 表示退出当前编辑,并执行。

PL/SQL已执行后并没有输出Hello World。原因是默认情况下,Oracle数据库的输出开关是关闭的。需要手动打开

set serveroutput on
/ 右斜线表示运行上一次sql或pl/sql程序
如果没有说明部分, declare可以不写。


PL/SQL程序结构

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

declare说明部分定义变量或常量。可定义为的基本类型:char  varchar2  date number boolean long   


set serveroutput on
--使用基本变量类型
declare
--定义基本变量类型
--基本数据类型
 pnumber number(7,2);
 --字符串变量
 pname varchar2(20);
 --日期变量
 pdate date;
 begin
 pnumber:=1;
 dbms_output.put_line(pnumber);
 
 pname:='Tom';
 dbms_output.put_line(pname);
 
pdate:= sysdate;
dbms_output.put_line(pdate);

--计算明天的日期
dbms_output.put_line(pdate+1);

 end;
/

执行结果:

匿名块已完成
1
Tom
10-3月 -17
11-3月 -17

declare说明部分定义引用型变量

例如:my_name emp.ename%type; 表示使用emp表的ename字段的类型作为my_name的类型。
--引用型变量
set serveroutput on
declare
--定义引用型变量:查询并打印7839的姓名和薪水
--pename varchar2(20);
--psal number;
pename emp.ename%type;
psal emp.sal%type;
begin 
匿名块已完成
KING的薪水是5000

--得到7839的姓名和薪水select ename,sal into pename,psal from emp where empno=7839;--打印姓名和薪水dbms_output.put_line(pename||'的薪水是'||psal);end; /


使用 into 关键字 赋值
匿名块已完成
KING的薪水是5000

declare说明部分定义记录型变量

例如:
emp_rec emp%rowtype;
取表中一行的类型作为变量的类型,一行有多个列,所以我们可以把记录性变量理解为数组,而数组中每个元素就代表该行的每一列。如果要引用其中某一列,
例如:
emp_rec。ename := 'admin';

--使用记录型变量,查询并打印7839的姓名和薪水
set serveroutput on
declare
--定义记录型变量:注意代表一行
  emp_rec emp%rowtype;
begin
  --得到7839一行的信息
  select * into emp_rec from emp where empno=7839;
  --打印姓名和薪水
  dbms_output.put_line(emp_rec.ename||'的薪水是'||emp_rec.sal);
  
end;
/

匿名块已完成
KING的薪水是5000



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值