oracle PL/SQL语句

一、PL/SQL 语句

PLSQL(Procedure Language/SQL)是Oracle对sql语言的过程化扩展,
指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。
把SQL语言的数据操纵能力与过程语言的数据处理能力结合起来,
使得PLSQL面向过程但比过程语言简单、高效、灵活和实用
举例用表  t_student;

CREATE TABLE T_STUDENT
( "ID" NUMBER   PRIMARY KEY, 
  "NAME" VARCHAR2(30) NOT NULL, 
  "SEX" NUMBER(1) CHECK(SEX IN (0,1)),
  "EDU" VARCHAR2(30),
  "TELE" VARCHAR2(30), 
  "CARDNO" VARCHAR2(18) UNIQUE CHECK(length(CARDNO) =15 or length(CARDNO) =18),
  "CLASSID" NUMBER
);


基本语法:
[declare
    --声明变量
    --格式  变量 变量类型;
    v_name varchar2;
    --声明变量并赋值
    v_tele varchar2:='13020120';
    --声明变量,不明确类型,引用某表,某个字段的类型
    --格式  变量名 表名.列名%type;
    v_edu t_student.edu%type;
    --声明常量   格式  常量名 constant 类型
    v_x constant number ;
    --记录型引用   格式  变量名 表名%rowtype;
    v_student t_student%rowtype;

    --声明变量,用于记录用户性别
    v_sex varchar2(20);
]
begin 

    --变量的赋值  变量名:=值;
    v_name:='张晓华';
    --select into 赋值 
    --格式 select 列名,列名... into 变量名1,变量名2... from 表名  条件
    --select into 只能插入一条记录,否则会报错
    select name into v_name from t_student where id = 3;
    --记录型引用 数据插入
    select * into v_student from t_student where id = 2;

    --条件判断
    if   条件 then
        业务逻辑 ;
        else  业务逻辑;
    end if;     

    --条件判断举例
    if v_student.sex=0  then
        v_sex='女';
        else  v_sex='男;'
    end if;

    --条件判断完整格式
    if 条件 then 
        业务逻辑    ;   
        elsif 条件 then
        业务逻辑;
        elsif 条件 then
        业务逻辑;
    end if;

    --条件判断完整格式举例
    if v_student.sex='0' then
        v_sex='女';
        elsif v_student.sex='1' then
        v_sex='男';
        else v_sex='性别未填写';
    end if;

    --输出语句,输出位置 Output窗口中
    --格式  DBMS.OUTPUT.out_line(变量名);
    DBMS_OUTPUT.put_line(v_student.name);
    [exception
        --处理异常  
    ]

end;

--循环语句,分为三种,无条件循环,有条件循环,for循环

--无条件循环 无条件必须有退出语句
loop
    业务逻辑;
    exit when 条件;退出语句
end loop;

--有条件查询举例
declare
    v_num number;
begin
    dbms_output.put_line(v_num);
    v_num:=v_num+1;
    --退出语句
    exit when v_num>100;
end;

--有条件循环   
while  条件 
loop 
    业务逻辑;
end loop;

--有条件循环举例
declare v_num number;
begin
    while v_num<100
    loop
    dbms_output.put_line(v_num);
    v_num:=v_num+1;
    end loop;   
end;

--for循环 
for 变量 in 起始值..终止值 
loop
    --如果要对循环次数进行调整,需要在loop进行调整,例如  变量为v_num    v_num:=v_num+1;
    业务逻辑;
end loop;

--for循环举例  for循环 自己定义变量,不需要在 declare中定义变量,且变量自增1
--for循环,如果需要按照指定的增长序列,需要在业务逻辑中进行设置
begin
    for v_num in 1..100
    loop
        dbms_output.put_line(v_num);
    end loop;   
end;    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值