Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Khai báo biến trong MySQL: Session variable và Local variable

Hai loại biến trong MySQL

1. Biến phiên (Session Variable) - @tenBien

Tồn tại trong suốt phiên kết nối. Dùng cho truy vấn ad-hoc, script.

SET @tenBien := giaTri;
-- hoặc
SELECT @tenBien := giaTri;

2. Biến cục bộ (Local Variable) - DECLARE

Chỉ dùng bên trong Stored Program (Procedure, Function, Trigger). Phải khai báo ở đầu khối BEGIN ... END.

DECLARE tenBien KIEU_DU_LIEU [DEFAULT giaTriMacDinh];

Ví dụ Session Variable

Tạo bảng SessionVariableDemo:

CREATE TABLE SessionVariableDemo (
    EmployeeId VARCHAR(10), EmployeeName VARCHAR(30), EmployeeAge INT
);
INSERT INTO SessionVariableDemo VALUES
('EMP-101','Carol',30), ('EMP-102','John',26), ('EMP-103','Bob',25),
('EMP-104','Sam',32), ('EMP-105','Mike',35), ('EMP-106','David',33);

Tạo biến ngưỡng tuổi:

SET @AgeGreaterThan30 := 30;

Dùng trong truy vấn:

SELECT * FROM SessionVariableDemo
WHERE EmployeeAge > @AgeGreaterThan30;

Kết quả

+------------+--------------+-------------+
| EmployeeId | EmployeeName | EmployeeAge |
+------------+--------------+-------------+
| EMP-104    | Sam          |          32 |
| EMP-105    | Mike         |          35 |
| EMP-106    | David        |          33 |
+------------+--------------+-------------+

So sánh nhanh

Đặc điểmSession @varLocal DECLARE
Phạm viCả phiên kết nốiChỉ trong BEGIN...END
Khai báoSET/SELECT @x:=1DECLARE x INT DEFAULT 1
Dùng ở đâuBất kỳ đâu trong sessionChỉ trong SP/Function/Trigger
Tiền tố@Không có
Gán giá trịSET @x = 1SET x = 1

Mẹo: Dùng session variable để lưu cấu hình tạm, ngưỡng lọc, hoặc truyền tham số giữa các câu lệnh trong script.