🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 存储过程 - 变量 在本节中,您将了解存储过程中的变量,如何声明和使用变量。 此外,您还将了解变量的作用域。 ### 声明变量 在 MySQL 中变量必须先声明,然后才能使用它。如下所示: DECLARE variable_name data_type(size) DEFAULT default_value; - 变量名必须遵循 MySQL 表列名的命名规则。 - 变量可以是任何 MySQL 数据类型,例如:INT,VARCHAR,DATE 等。 - 当声明一个变量时,它的初始值为NULL。可以使用 DEFAULT 关键字为变量分配默认值。 声明一个名称为 `total_sale` 的变量,数据类型为 INT,其默认值为 0,如下所示: DECLARE total_sale INT DEFAULT 0; MySQL 允许使用单个 DECLARE 语句来声明多个相同数据类型的变量,如下所示: DECLARE x, y, z INT DEFAULT 0; ### 变量赋值 要为变量分配一个值,可以使用 SET 语句,如下所示: DECLARE total_count INT DEFAULT 0; SET total_count = 10; 除了 SET 语句,还可以使用 SELECT INTO 语句将查询的结果分配给变量,然后查询返回标量值。 如下所示: DECLARE total_count INT DEFAULT 0 SELECT COUNT(*) INTO total_count FROM employee ### 变量作用域 变量定义有自己的生命周期范围。如果在存储过程中声明一个变量,当存储过程到达 END 语句时,它将超出范围。 如果在 BEGIN END 块中声明一个变量,它到达 END 语句时将超出了范围。 可以在不同范围中声明相同名称两个或多个变量,因为变量仅在其自身作用域中有效。但是,在不同的范围中声明相同名称的变量不是一种好的编程实践。 以 *@* 符号开头的变量是会话变量,它在会话结束前是总是可用及可访问的。