ORCL-主线2-PLSQL学习

SQL基础学习

简介

定义

​ PL/SQL是是由甲骨文公司在90年代初开发,以提高SQL的功能。PL/SQL是嵌入在Oracle数据库中的编程语言之一。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。

语法

  declare         -- 声明部分
      msg varchar(20);
  begin                     -- 程序主体
      msg :='你好';
      dbms_output.put_line(msg);
  end;

helloworld

-- Created on 2020/10/27 by SILER 
declare 
  -- Local variables here
  i integer;
begin
  -- Test statements here
  Dbms_Output.put_line('hello world');
end;

输出:

image-20201027105841341

变量

普通数据类型:char,varchar2,date,number,boolean,long

特殊变量类型:引用型变量,记录型变量

声明变量的方式:

变量名 变量类型(变量长度) 例如:name varchar2(20);

普通变量

变量赋值:

​ 直接赋值语句::=

​ 语句赋值,使用select …into …赋值:

实例

-- 打印人员个人信息,包括:姓名,薪水,地址
declare 
  v_name varchar2(20) :='张三';
  v_sal number;
  v_addr varchar2(200);
begin
  -- 直接赋值
  v_sal :=1500;
  
  --语句赋值
  
  select '河南郑州市' into v_addr From dual;
  
  -- 打印输出
  dbms_output.put_line('姓名:'||v_name ||',薪水:' || v_sal || '地址:'||
  v_addr); 
end;

输出:

image-20201027111151501

符号

符号解释
||字符串连接符
:=赋值运算符
%属性索引
=相等运算符

引用型变量:

变量的类型和长度取决于表中字段的类型和长度

通过表名.列名%TYPE指定变量的类型和长度

-- 查询出一个表中的信息
declare 
  -- Local variables here
  v_a test.a%type;
  v_b test.b%type;
begin
  -- Test statements here
  select A,B into v_a,v_b from test;
  dbms_output.put_line(v_a);
  dbms_output.put_line(v_b);
end;

记录型变量:

接受表中一整行记录,相当于java中的一个对象。

语法:变量名称 表名%ROWTYPE

实例:

-- 查询表中行记录
declare 
  -- Local variables here
  v_row test%ROWTYPE;
begin
  -- Test statements here
  select * into v_row from test;
  dbms_output.put_line(v_row.b);
end;

结构

if结构

每一次if结构结束都要与之对应的end if;

DECLARE
    a number(3) := 100;
BEGIN
    IF ( a = 10 ) THEN
        dbms_output.put_line('Value of a is 10' );
    ELSIF ( a = 20 ) THEN
        dbms_output.put_line('Value of a is 20' );
    ELSIF ( a = 30 ) THEN
        dbms_output.put_line('Value of a is 30' );
    ELSE
        dbms_output.put_line('None of the values is matching');
    END IF;
    dbms_output.put_line('Exact value of a is: '|| a );
END;
case结构
declare
  grade char(1) := 'A';
begin
  case grade
    when 'A' then dbms_output.put_line('A');
    when 'B' then dbms_output.put_line('B');
    else dbms_output.put_line('NO');
  end case;
end;

循环

loop循环

begin
	loop
		exit when 退出循环条件
		end loop;
end;
-- 查询出一个表中的信息
declare 
  -- Local variables here
  v_n number :=1;
begin
  -- Test statements here
  loop 
    exit when v_n>10;
    dbms_output.put_line(v_n);
    v_n :=v_n+1;
   end loop;
end;

image-20201027114011571

游标

什么是游标:

用于临时存储一个查询返回的多行记录,通过遍历游标,可以柱形访问呢处理该结果集的数据。

游标的使用方式:声明-》打开-》读取-》关闭

语法:

Cursor 游标名[(参数列表)] IS 查询语句

-- 打开游标
open Cursor
-- 游标的取值
FETCH 游标名 INTO 变量列表
-- 游标的关闭:
CLOSE 游标名;

游标的属性

image-20201027115527588

实例:

image-20201027115925083

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值