-- 创建一个名为@username的会话变量,并将其赋值为'John'
SET @username = 'John';
-- 在后续的查询中使用该变量
SELECT COUNT(*) FROM orders WHERE username = @username;
局部变量
定义与命名:
局部变量是在存储过程或函数中定义的变量。
它们的名称不需要以“@”符号开头,但需要在使用前通过DECLARE语句进行声明。
作用范围:
局部变量的作用范围仅限于其定义的BEGIN/END语句块内。
一旦离开这个语句块,局部变量的值就无法再被访问。
使用方式:
局部变量通常用于存储存储过程或函数中的中间结果和临时数据。
它们可以通过SET语句或SELECT INTO语句进行赋值,并在存储过程或函数内部进行使用。
示例:
代码语言:javascript
复制
-- 定义一个存储过程,计算某个客户在特定日期范围内的订单总金额
DELIMITER //
CREATE PROCEDURE CalculateTotalAmount(IN cust_id INT, IN start_date DATE, IN end_date DATE)
BEGIN
DECLARE total_amount DECIMAL(10,2); -- 声明一个局部变量来存储订单总金额
SET total_amount = 0.00; -- 初始化总金额为0
-- 计算总金额,并将结果存放在局部变量中
SELECT SUM(total_amount) INTO total_amount
FROM orders
WHERE customer_id = cust_id AND order_date BETWEEN start_date AND end_date;
-- 返还结果
SELECT total_amount AS 'Total Amount';
END //
DELIMITER ;