mysql中编写一个存储过程_mysql编写存储过程(1)

存储过程:其实就是存储在数据库中,有一些逻辑语句与SQL语句组成的函数。由于是已经编译好的语句,所以执行速度快,而且也安全。

打开mysql的控制台,开始编写存储过程。

实例1:

编写存储过程:

394afee5f80b8de65a9102f4e0b595e9.png

执行存储过程:

c1fd0964b52fc45667e77f64a5fa7dd7.png

查看执行结果:

31f60f29ab8f4a8bf55cc765c171547a.png

语句解释:

1、delimiter //,声明分隔符:DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码(这里如果不懂的话,你可以通过试错的方法来理解)。

2、编写存储过程的格式:CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...])

例子:

1)create procedure proc1(out s int)  // 只有输出

2)create procedure proc2(in p_in bigint)  // 只有输入

3)create procedure proc15() // 没有输入与输出

4)create procedure demo_multi_param(in id bigint,in name varchar(32),out c int) //多输入与输出

3、过程体的开始与结束使用BEGIN与END进行标识。

4、select count (*) into s from student; // 过程体,一系列的逻辑语句,sql语句

5、delimiter ; 用完了之后要把分隔符还原。

实例2:

5850a910424dd915ebf99446303c9150.png

实例3、

f31e7b55c838480ca791d3282dba5055.png

1d791aa5b50d9c8663f12f8dc7578474.png

结论:输出参数在过程中改变了,会得到保存。但是如果@p_out有预设的值,执行存储过程也不会认预设值,可以从第一个输出为null看出。

实例4、

f4d50883138691c39c6e45bbb2103dc9.png

注意:p_in虽然在存储过程中被修改,但并不影响@p_id的值,执行完语句之后,再执行@select @p_in。

实例5、

78e5b67b117d9895e0bc6650dd9771b8.png

结论:如果输入输出参数,那么在存储过程中,即会认输入的,如果在存储过程中改变了,那么输出也会认。

实例6:

d0f46961355075901571112fb913f628.png

这个是一个多个输入,一个输出的例子。

实例7:

c47afacd06008937e5b8c7c9e0d98abc.png

说明:begin...end 之间是内部变量的作用域,一旦超过这个作用域,其内部声明的变量就结束了,就会变成外部作用域的变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值