my sql存储过程 基本使用

Posted ly77461

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了my sql存储过程 基本使用相关的知识,希望对你有一定的参考价值。

--------------创建不带参数的存储过程-----------------
DELIMITER;;
drop PROCEDURE if EXISTS selectStudent;

create PROCEDURE selectStudent()
BEGIN
select*from student;
end;;
DELIMITER;


--------------带参数的存储过程--------------------
drop PROCEDURE if EXISTS selectCity;

create PROCEDURE selectCity(
in _cityID varchar(10)--输入参数--
)
BEGIN
select *from student where cityID=_cityID;
end;


--------------带有输出参数的存储过程--------------------
drop PROCEDURE if EXISTS selectCity_Name;
CREATE PROCEDURE selectCity_Name(
  in _CityID varchar(10)--输入参数,
  out _City varchar(10) --输出参数,
  inout _CityIDName varchar(10) --输入输出参数
)
BEGIN
select*from student where cityID=_CityID and CityName=_CityName INTO _City;
end;

set @_CityID=1;
set @_CityIDName=郑州;
call selectCity_Name(@_CityID,@_City,@_CityIDName);
select @_CityIDName as ID,@_City;



-----------带有通配符的存储过程------------
drop PROCEDURE if EXISTS selectCityLike;
create PROCEDURE selectCityLike(
in _CityName varchar(10)
)
BEGIN 

set @exec_sql =CONCAT("select *from student where name like %",_CityName,"%");
PREPARE stmt from @exec_sql ;  --定义
EXECUTE stmt;--执行预处理语句
DEALLOCATE PREPARE stmt;--删除定义

end



-------循环语句:操作前检查结果----------
create PROCEDURE proc4()
BEGIN

declare var int;
set var=0;

WHILE var<6 DO
insert into t VALUES(var);
set var=var+1;
end while;

end


----------循环语句:操作后检查结果------------
create PROCEDURE proc5()
BEGIN

DECLARE v int;
set v=0;

REPEAT
insert into t VALUES(v);
set v=v+1;
UNTIL v>=5
end repeat;

end



----------循环语句:loop..endloop------------
create PROCEDURE proc6()
BEGIN

declare v int;
set v=0;

loop_lable:LOOP
insert into values(v);

set v=v+1;
if v>=5 THEN
LEAVE loop_lable;
end if;

end loop;

end


----------循环语句:loop..endloop-------------
create PROCEDURE proc7()
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;

 

以上是关于my sql存储过程 基本使用的主要内容,如果未能解决你的问题,请参考以下文章

My sql之存储过程+游标

My SQL 高级部分

Java调用SQL Server的存储过程详解(转)

sql 这些代码片段将演示如何逐步使用PolyBase。你应该有一个blob存储和存储秘密方便

My SQL 动态查询执行并将输出输出到存储过程中的变量中

程序中使用嵌套的sql语句和在数据库中写存储过程调用它,有啥区别?