SQL语句没有流程控制语句,不能实现复杂的应用。
PL/SQL语言时将结构化查询与数据库过程控制结合为一体的强大语言。PL/SQL不但支持更多的数据类型,拥有变量声明、赋值语句,而且有选择、循环等流程控制语句。存储过程是一组为了完成特定功能的PL/SQL语句集,经编译后存储在数据库中,用户可以重复该存储过程,这样可以降低数据开发人员的工作
create table stu(
id int (10) primary key not null unique,
name varchar(50) not null,
class varchar(50) not null);
insert into stu value(1,"Lucy","class1"),
(2,"Tom","class1"),
(3,"Rose","class2");
create procedure addcount(out count int)
begin
declare itmp int;
declare cur_id cursor for select id from stu;
declare exit handler for not found close cur_id;
select count(*) into count from stu;
set @sum=0;
open cur_id;
repeat
fetch cur_id into itmp;
if itmp<10
then set @sum=@sum+itmp;
end if;
until 0 end repeat;
close cur_id;
end;//
call addcount(@count)//
select @count,@sum//