存储过程:

存储过程是用于将代码存储在数据库端,通过存储过程名称就可以调用。存储过程类似于java的方法,但是也是有区别的,方法只能返回一个值,并且需要声明返回值的类型,但是存储过程可以带出多个值,而且不需要声明返回值的类型,而且也可以带值进和带值出。

存储过程代码格式:

DELIMITER $$

CREATE PROCEDURE 存储过程名称(参数)

   BEGIN

代码书

   END$$

DELIMITER ;


存储过程里面可以写很多代码,将一些功能操作使用存储过程来完成,并且存储在数据库端,连接数据库的时候就可以直接使用名称进行调用。

虽然存储过程可以将一些功能在数据库端实现,并且只需要使用名称就可以调用,但是这种代码可移植性差,因为每个数据库的存储过程的sql语法都不太一样。所以不能直接将代码移植,移植的话需要重写一部分代码,所以存储过程实际上也并不经常使用,但是却是必须了解学习的一个知识点。


创建存储过程:

存储过程_第1张图片



在数据库中是可以进行编程的,所以也是有流程控制语句的。例如可以在存储过程中写if语句:

存储过程_第2张图片


mysql中的if语句和java中的不太一样,是类似于vb般的使用英文中的单词来作为大括号。If后面写条件然后then和else之间写需要执行的代码,然后使用end if来作为if语句的结束。


既然有if语句自然就有多路分支语句,在mysql中多路分支语句的条件是写在eselif后面的,条件的后面写then:

存储过程_第3张图片



调用存储过程:

使用CALL关键字调用存储过程,声明了参数的话,需要按照声明的参数类型传递值:

3092



删除存储过程:

使用表结构删除语句删除存储过程,写上存储过程关键字和存储过程名称即可:

3093



关于值:

存储过程可以有以下几种类型带值方式:

1.带值进

2.带值出

3.带值进+带值出