mysql存储过程笔记
存储过程是一组完成特定功能的sql语句集合,已经被编译好,可以直接拿来被执行,可以传参 参数有三种类型,in ,out ,inout 。 in类型的参数,可以在存储过程的方法体里面被调用,但是无法影响外部 out类型的参数,无法被内部调用,存储过程出来的结果可以影响外部 inout类型的参数,可以被接收调用,出来的结果可以影响外部 存储过程的意义 1.存储过程只编译一次,提高了数据库执行效率 2.当对数据库有复杂操作时,比如对多个表进行增删改查,这些操作如果用程序来完成,就是一条条的sql语句,需要多次连接数据库,而换成存储过程,只需一次 3.存储过程可以重复使用,节省开发时间 一个存储过程的例子 mysql> delimiter $$ #将语句的结束符号从分号;临时改为两个$$(可以是自定义) mysql> CREATE PROCEDURE delete_matches(IN p_playerno INTEGER) -> BEGIN -> DELETE FROM MATCHES -> WHERE playerno = p_playerno; -> END$$ Query OK, 0 rows affected (0.01 sec) mysql> delimiter; #将语句的结束符号恢复为分号 有的时候,存储过程需要自定义参数 参数定义方式示例 DECLARE l