(1)声明变量的语法:
DECLARE var_name[,...] type [DEFAULT value]
示例:
DECLARE last_month_start DATE;
(2) 变量的作用域
BEGIN...END 块中
(3)注意事项:
a. 变量声明语句要放在复合语句的开头,并且在任何其他语句的前面
b. 可以一次声明多个相同类型的变量
c. 可以给变量赋默认值
(4) 变量赋值的语法:
SET var_name=expr[,var_name=expr]...
示例:
SET last_month_start=DATE_SUB(CURRENT_DATE(),INTERVAL 1 MONTH)
注1: 可以将查询结果赋予变量,但请注意仅限查询结果为一行的时候。
SELECT col_name[,...] INTO var_name [,...] table_expr;
示例展示:(函数的参数只有IN类型)
CREATE FUNCTION get_customer_balance(p_customer_id INT,
p_effective_date DATETIME)
RETURNS DECIMAL(5,2)
DETERMINISTIC
READS SQL DATA
BEGIN
declare v_payments DECIMAL(5,2) ;
SELECT IFNULL(SUM(payment.amount),0) INTO v_payments
FROM payment
WHERE payment.payment_date <= p_effective_date
AND payment.customer_id=p_customer_id
RETURN v_rentfees + v_overfees - v_payments;
END $$