1. if-then -else语句:计算一个布尔表达式,如果是true则执行一个T-sql语句or批处理。这命令允许根据条件返回结果集、更新数据or根据一个or多个搜索条件执行存储过程
create procedure p12(in parameter int)
begin
declare var int;
set var=parameter+1;
if var=0 then
insert into t values(17);
end if;
if parameter=0 then
update t set s1=s1+1;
else
update t set s1=s1+2;
end if;
end;//
2. case指令:如果需要进行更多条件真假的判断我们可以使用case语句。用于根据一个表达式的值返回结果。常用于将代码值转换为描述性的值or计算多个条件来返回一个值
语法:
CASE input_expression
WHEN when_expression THEN result_expression
[...n]
[ELSE else_result_expression]
END
when_expression: 要和input_expression比较的表达式
result_expression: input_expression & when_expression相等时要返回的值
create procedure p13(in parameter int)
begin
declare var int;
set var=parameter+1;
case var
when 0 then insert into t values(17);
when 1 then insert into t values(18);
else insert into t values(19);
end case;
end;//
循环式语句:
1. while ···· end while; 循环语句
create procedure p14()
begin
declare var int;
set var=0;
while var<6 do
insert into t values(var);
set var=var+1;
end while;
end;//
2. repeat···· end repeat ;它在执行操作后检查结果,而while则是执行前进行检查
create procedure p15()
begin
declare v int;
set v=0;
repeat
insert into t values(v);
set v=v+1;
until v>=5
end repeat;
end;//
3. loop ·····end loop; loop 循环不需要初始条件,这点和while 循环相似,同时和repeat
循环一样不需要结束条件, leave语句的意义是离开循环,
create procedure p16()
begin
declare v int;
set v=0;
LOOP_LABLE:loop
insert into t values(v);
set v=v+1;
if v >=5 then
leave LOOP_LABLE;
end if;
end loop;
end;//
4. LABLES 标号:标号可以用在begin repeat while 或者loop 语句前,语句标号只能在
合法的语句前面使用。可以跳出循环,使运行指令达到复合语句的最后一步。
迭代:
1. ITERATE:通过引用复合语句的标号,来从新开始复合语句
create procedure p20()
begin
declare v int;
set v=0;
LOOP_LABLE:loop
if v=3 then
set v=v+1;
ITERATE LOOP_LABLE;
end if;
insert into t values(v);
set v=v+1;
if v>=5 then
leave LOOP_LABLE;
end if;
end loop;
end;//1. ITERATE:通过引用复合语句的标号,来从新开始复合语句
create procedure p20()
begin
declare v int;
set v=0;
LOOP_LABLE:loop
if v=3 then
set v=v+1;
ITERATE LOOP_LABLE;
end if;
insert into t values(v);
set v=v+1;
if v>=5 then
leave LOOP_LABLE;
end if;
end loop;
end;//
1. if-then -else语句
create procedure p12(in parameter int)
begin
declare var int;
set var=parameter+1;
if var=0 then
insert into t values(17);
end if;
if parameter=0 then
update t set s1=s1+1;
else
update t set s1=s1+2;
end if;
end;//
2. case指令:如果需要进行更多条件真假的判断我们可以使用case语句
create procedure p13(in parameter int)
begin
declare var int;
set var=parameter+1;
case var
when 0 then insert into t values(17);
when 1 then insert into t values(18);
else insert into t values(19);
end case;
end;//
循环式语句:
1. while ···· end while; 循环语句
create procedure p14()
begin
declare var int;
set var=0;
while var<6 do
insert into t values(var);
set var=var+1;
end while;
end;//
2. repeat···· end repeat ;它在执行操作后检查结果,而while则是执行前进行检查
create procedure p15()
begin
declare v int;
set v=0;
repeat
insert into t values(v);
set v=v+1;
until v>=5
end repeat;
end;//
3. loop ·····end loop; loop 循环不需要初始条件,这点和while 循环相似,同时和repeat
循环一样不需要结束条件, leave语句的意义是离开循环,
create procedure p16()
begin
declare v int;
set v=0;
LOOP_LABLE:loop
insert into t values(v);
set v=v+1;
if v >=5 then
leave LOOP_LABLE;
end if;
end loop;
end;//
4. LABLES 标号:标号可以用在begin repeat while 或者loop 语句前,语句标号只能在
合法的语句前面使用。可以跳出循环,使运行指令达到复合语句的最后一步。
迭代:
1. ITERATE:通过引用复合语句的标号,来从新开始复合语句
create procedure p20()
begin
declare v int;
set v=0;
LOOP_LABLE:loop
if v=3 then
set v=v+1;
ITERATE LOOP_LABLE;
end if;
insert into t values(v);
set v=v+1;
if v>=5 then
leave LOOP_LABLE;
end if;
end loop;
end;//1. ITERATE:通过引用复合语句的标号,来从新开始复合语句
create procedure p20()
begin
declare v int;
set v=0;
LOOP_LABLE:loop
if v=3 then
set v=v+1;
ITERATE LOOP_LABLE;
end if;
insert into t values(v);
set v=v+1;
if v>=5 then
leave LOOP_LABLE;
end if;
end loop;
end;//