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

来源:互联网 发布:mac itunes 同步铃声 编辑:程序博客网 时间:2024/05/20 10:21
  • 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_valueWHEN when_value then statement_sqlWHEN when_value then statement_sqlELSE statement_listEND 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;$$
0 0
原创粉丝点击