在存储过程中为什么要申明变量??????????不声明可以吗?????????????????????????在什么样的情况下声明和不申明??????
你需要保存中间结果就需要变量,不需要中间结果保留就不需要。比如说,交换两个数,那么需要一个中间变量。两个数相加就不需要。
1.存储过程是什么?
百度百科:存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的......
答案就在这里:【数据库】 存储过程
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
如果存储过程中需要使用变量,需要提前声明的。
DECLARE var_name[,...] type [DEFAULT value]
这个语句被用来声明局部变量。要给变量提供一个默认值,请包含一个DEFAULT子句。
值可以被指定为一个表达式,不需要为一个常数。如果没有DEFAULT子句,初始值为NULL
变量赋值:
SET var_name = expr [, var_name = expr] ...
SELECT col_name[,...] INTO var_name[,...] table_expr
这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。
参考自MySQL存储过程详解 http://www.data.5helpyou.com/article314.html