首页 理论教育MySQL数据库:声明和设置变量

MySQL数据库:声明和设置变量

【摘要】:但是与PHP不同,MySQL要求指定这些变量的类型并显式进行声明。本节展示何声明和设置变量。还要注意变量的作用范围限制在声明该变量的代码块中,这很重要,因为程序中可能有多个BEGIN/END块。DECLARE关键字还用于声明某种条件和处理器。默认地,MySQL使用分号来确定一个语句是否结束。

在存储过程中完成任务时,通常需要局部变量作为临时占位符。但是与PHP不同,MySQL要求指定这些变量的类型并显式进行声明。本节展示何声明和设置变量。

1.声明变量

与PHP不同,在存储过程使用局部变量之前,必须声明局部变量,通过使用MySQL支持的某种数据类型来指定变量类型。变量声明通过DECLARE语句实现,其形式如下:

例如,假设创建一个存储过程calculate- bonus来计算员工的红利。它可能需要变量salary、bonus和total。声明如下:

在声明变量时,声明必须放在BEGIN/END块中。此外,声明必须在执行该块任何其他语句之前进行。还要注意变量的作用范围限制在声明该变量的代码块中,这很重要,因为程序中可能有多个BEGIN/END块。

DECLARE关键字还用于声明某种条件和处理器。

2.设置变量(www.chuimin.cn)

SET语句用来设置声明的存储过程变量值。其形式如下:

如下示例展示丁声明和设置变量1nv的过程:

也可以使用SELECT.…INTO语句设置变量。例如,inv变量也可以如下设置:

当然,此变量是声明该变量的BEGIN/END块作用范围内的一个局部变量。如果希望在存储过程外使用此变量,需要将其作为OUT变量传递,如下:

得到结果如下:

不过,可能不清楚DELIMITER语句有什么用。默认地,MySQL使用分号来确定一个语句是否结束。不过,创建一个包含多个语句的存储过程时,需要编写多个语句,但在完成这个存储过程之前,并不希望MySQL执行任何操作。因此,必须把定界符修改为另一个字符串。不一定非得是//。可以选择喜欢的任何定界符,如可以|||或^^。