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

逻辑关系

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;

猜你喜欢

转载自blog.csdn.net/Hao1999_/article/details/121438071