PL/SQL逻辑关系——PL/SQL教程(二)

42 篇文章 8 订阅
30 篇文章 9 订阅

逻辑关系

IF语句
/*
IF语句的逻辑条件可以是一个逻辑表达式,也可以由多个逻辑表达式连接在一起,
连接多个表达式的符号就是连接操作符,包括and(与)or(或)not(非)
*/

declare
	v_total_sal number(9,2):=0; -- PL/SQL中用 := 赋值
	c_tax_rate constant number(3,2) :=8.25 -- PL/SQL中的常量只能赋值一次 
    -- 常量格式  常量名 constant 数据类型 := 默认值
    v_gender char(1);
    v_valid boolean not null := true;-- 布尔类型
    v_b boolean;
    v_num1 number(2) := 10;
    v_num2 number(2) := 10;
begin
	dbms_output.put_line('v_total_sal=' || v_total_sal);
	-- 可以把变量名通过输出语句来查看值
	v_b := (v_num1=v_num2);
	-- 这里的 = 相当于Java中的 == 的功能,执行 逻辑比较  操作
	if(v_b = true) then -- if 后面的表达式为true就执行 then后面的语句
		dbms_output.put_line('OK');
	else -- 反之 执行else中的语句
		dbms_output.put_line('NOT OK');
	end if;
end;

LOOP语句
/*
循环用于多次执行某些语句。
主要由三种循环类型:
	简单循环
	for循环
	while循环
	
循环的四个条件:
1、初始条件
2、循环条件
3、循环体
4、迭代条件
*/

declare
	i number(3):=1; -- 出生条件
begin
	loop
		dbms_output.put_line(i); --循环体
		i := i+1; -- 迭代条件
		exit when i>10; -- 循环条件
	end loop;
end;

/*
利用loop循环,向users表中插入100条数据,如果编号是奇数,性别为男,
如果编号是偶数,性别为女。
*/
declare
	v_sex varchar(5);
	v_count number(3):=1;
	v_name varchar(50);
begin
	loop
		if(mod(v_count,2)=0) then
			v_sex:='女';
		else
			v_sex:='男';
		end if;
		v_name :='王'||v_count;
		insert into users values(v_count,v_name,v_sex);
		v_count := v_count +1;
		exit when v_count>100;
	end loop;
end;
truncate table users;-- 清空表
/*
	while循环
*/
declare
	v_count number(3):=1; -- 初始条件
begin
	while (v_count <= 10) loop -- 循环条件
		dbms_output.put_line(v_count); -- 循坏体
		v_count := v_cout+1; -- 迭代条件
	end loop;
end;
/*
利用while循环,向users表中插入100条数据,如果编号是奇数,性别为男,
如果编号是偶数,性别为女。
*/
declare
	v_count number(3):=1; -- 初始条件
	v_sex varchar2(2);
	v_name varchar2(50);
begin
	while (v_count <= 100) loop -- 循环条件
		if(mod(v_count,2) = 0) then
			v_sex:='女';
		else
			v_sex:='男';
		end if;
		v_name :='王'||v_count;
		insert into users values(v_count,v_name,v_sex);
		v_count := v_cout+1; -- 迭代条件
	end loop;
	commit;
end;

/*
for循环
在使用for循环的时候,由Oracle来维护计数器
for 变量 in[reverse] 1..100 loop
	上面的reverse是倒序的意思
end loop;
*/
declare
	v_sex varchar2(3);
	v_name varchar2(50);
begin
	-- Oracle会自动的声明计数器,会自动的进行计数器的迭代
	for v_count in 1..100 loop
		if(mod(v_count,2) = 0) then
			v_sex:='女';
		else
			v_sex:='男';
		end if;
		v_name :='王'||v_count;
		insert into users values(v_count,v_name,v_sex);
	end loop;
	commit;
end;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值