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;
输出:
变量
普通数据类型: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;
输出:
符号
符号 | 解释 |
---|---|
|| | 字符串连接符 |
:= | 赋值运算符 |
% | 属性索引 |
= | 相等运算符 |
引用型变量:
变量的类型和长度取决于表中字段的类型和长度
通过表名.列名%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;
游标
什么是游标:
用于临时存储一个查询返回的多行记录,通过遍历游标,可以柱形访问呢处理该结果集的数据。
游标的使用方式:声明-》打开-》读取-》关闭
语法:
Cursor 游标名[(参数列表)] IS 查询语句
-- 打开游标
open Cursor
-- 游标的取值
FETCH 游标名 INTO 变量列表
-- 游标的关闭:
CLOSE 游标名;
游标的属性
实例: