您好,欢迎访问三七文档
1存储过程1.1:定义createprocedure名字(in参数int,out参数int)begin存储过程体end$$DELIMITER//CREATEPROCEDUREproc1(OUTsint)BEGINSELECTCOUNT(*)INTOsFROMuser;END//DELIMITER1.2调用存储过程call存储过程(参数..);2:如何定义变量declare变量名类型(长度);3:条件分支语句3.1:IFTHENIF…条件THEN执行的代码ENDIF3.2CASEWHENcase变量名when‘in’thensetsex=’男’;when‘f’thensetsex=’女’;elseifsex=’无’;endcase;3.3循环语句while条件doendwhile举例:delimiter$$createproceduredowhile(){begindeclarev1intdefault5;whilev10dosetv1=v1-1;endwhile;end$$delimiter;3.4:和whiledo作用一样类似于java中的do..whilerepeat要执行的代码循环体untilv11;endrepeat;4:游标declare游标名cursorfor游标名检索(select语句)打开游标:open游标名;关闭游标:close游标名;5:Sqlyog如何创建存储过程:表:这个是我的表结构DELIMITER$$USE`java02_test`$$DROPPROCEDUREIFEXISTS`cst`$$CREATEDEFINER=`root`@`localhost`PROCEDURE`cst`(INv1INT,INv2INT)BEGINWHILEv1v2DOINSERTINTOcustomersVALUES(v1,'郑州');SETv1=v1-1;ENDWHILE;END$$DELIMITER;6:存储过程传参:USE`java02_test`$$DROPPROCEDUREIFEXISTS`cst`$$CREATEDEFINER=`root`@`localhost`PROCEDURE`cst`(INv1INT,INv2INT,OUTiINT)BEGIN/*循环*/WHILEv1v2DOINSERTINTOcustomersVALUES(v1,'郑州');/*变量设值*/SETv1=v1-1;/*变量设值*/SETi=1000;ENDWHILE;END$$DELIMITER;外部如何接收存储过程返回值以及如何传参数给存储过程:7:批量更新数据DELIMITER$$USE`java_01`$$DROPPROCEDUREIFEXISTS`updateDate`$$CREATEPROCEDURE`java_01`.`updateDate`()BEGINDECLAREclass_08_countINT;DECLAREiINTDEFAULT1;SELECTCOUNT(*)INTOclass_08_countFROMclass_08;WHILE(iclass_08_count)DOUPDATEclass_08SETdate_d=DATE_ADD(date_d,INTERVALiDAY)WHEREid=i;SETi=i+1;ENDWHILE;END$$DELIMITER;
本文标题:Mysql存储过程
链接地址:https://www.777doc.com/doc-2889282 .html