服务热线:

MySQL的存储进程怎样调用

发布时间: 2023-10-22 23:04:14 来源:电竞比分-存储调理

详细信息

  假如在完成用户的某些需求时,需求编写一组杂乱的SQL句子才干完成的时分,那么咱们就能够将这组杂乱的SQL句子集提早编写在数据库中,由JDBC调用来履行这组SQL句子。把编写在数据库中的SQL句子集称为存储进程。

  :(PROCEDURE)是事前通过编译并存储在数据库中的一段SQL句子的调集。调用存储进程能够简化运用研制人员的许多作业,削减数据在数据库和运用服务器之间的传输,关于进步数据处理的功率是很有优点的。

  与Java中的办法相似,存储进程需求先界说,运用时需求调用。参数能够被界说在存储进程中,这些参数分为三种类型:IN、OUT和INOUT。

  INOUT类型的参数即可承受调用者传入的参数,也能够向调用者回来数据。

  一般存储进程都是有助于进步运用程序的功用。当创立的存储进程被编译之后,就存储在数据库中。

  由于应运程序不用发送多个冗长的SQL句子,只用发送存储进程中的称号和参数即可。

  存储的程序是安全的。数据库办理员能够向拜访数据库中的存储进程的运用程序赋予恰当的权限,而不需求向底层数据库表颁发任何权限。

  假如运用很多的存储进程,那么运用这一些存储进程的每个衔接的内存运用量将大大添加。

  很难调试存储进程。只要少量数据库办理体系答应调试存储进程。不幸的是,MySQL不供给调试存储进程的功用。

  ou代表输出参数,表明该参数的值经存储进程核算后,将out参数的核算结果回来给调用程序。

  inout代表即时输入参数,又是输出参数,表明该参数的值即可有调用程序拟定,又能够将inout参数的核算结果回来给调用程序。

  DELIMITER $$ CREATE PROCEDURE `demo`.`demo3`(IN `day` INT) -- 存储进程体 BEGIN IF `day` = 0 THEN SELECT 星期天; ELSEIF `day` = 1 THEN SELECT 星期一; ELSEIF `day` = 2 THEN SELECT 星期二; ELSE SELECT 无效日期; END IF; END$$ DELIMITER ;

  -- 创立进程 DELIMITER $$ CREATE PROCEDURE demo7(IN num INT,OUT SUM INT) BEGIN SET SUM = 0; REPEAT-- 循环开端 SET num = num+1; SET SUM = SUM+num ; UNTIL num=10 END REPEAT; -- 循环完毕 END$$ DELIMITER;

  句子作用相当于Java中的continue,用来越过此次循环。进入下一次循环。且ITERATE之下的句子将不在进行。

  CALL demo9(Jim,女,@s_result)