您的位置:首页 > 数据库 > MySQL

[学习笔记]MySql存储过程学习二

2016-10-17 22:59 639 查看
MySql存储过程中的流程控制语句之if…else…语句

DELIMITER $$

CREATE PROCEDURE p_showage_two(age int)
begin
if age >= 18 then
select '成年人';
else
select '未成年人';
end if;
end
$$

CREATE PROCEDURE p_showage_two(in age int)
begin
if age >= 60 then
select '老年人';
elseif age>=18 &&  age<60 then
select '成年人';
else
select '未成年人';
end if;
end;
$$

DELIMITER ;

--调用存储过程
CALL p_showage_two(16);

CALL p_showage_two(19);

CALL p_showage_two(61);


MySql存储过程中的流程控制语句之case

CASE case_value
WHEN when_value then statement_sql
WHEN when_value then statement_sql
ELSE statement_list
END CASE


注:

IFNULL(exp1,exp2) exp1如果为空值则返回为exp2的值,如果exp1不为空值,那么返回的结果就是exp1的值。

MySql存储过程中的流程控制语句之循环语句

CREATE PROCEDURE p_addnum()
begin
declare i int default 1;
declare addresult int default 0;
while i <=100 do
set addresult = addresult+i;
set i = i+1;
end while;
select addresult;
end;
$$


插入一千条数据

CREATE PROCEDURE p_insert_emp()
begin
declare maxempno int default 0;
declare i int default 1;
while i<=100 do
select max(emp_no) into maxempno from employees;
set maxempno = maxempno + 1;
insert into employees(emp_no,birth_date,first_name,last_name,gender,hire_date)
values(maxempno,'1990-1-1','jmi','ui','M','2011-1-5');
set i=i+1;
end while;
end;
$$


MySql存储过程中的流程控制语句之repeat和loop

CREATE PROCEDURE p_updateGender()
begin
declare imin int default 1;
declare imax int default 1;
select min(emp_no) into imin from employees;
select max(emp_no) into imax from employees;
repeat
if imin%2=0 then
update employees set gender='F' where emp_no = imin;
end if;
set imin = imin +1;
until until imin>imax
end repeat;
end;
$$
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: