सेशन वेरिएबल (@) और लोकल वेरिएबल (DECLARE)
1. सेशन वेरिएबल (उपयोगकर्ता-परिभाषित वेरिएबल)
SET @var := value; सिंटैक्स का उपयोग करें। ये सत्र के लिए मान्य होते हैं।
mysql> SET @AgeGreaterThan30 := 30; mysql> SELECT * FROM SessionVariableDemo WHERE EmployeeAge > @AgeGreaterThan30;
2. लोकल वेरिएबल (स्टोर्ड प्रोग्राम के अंदर)
DECLARE var_name datatype [DEFAULT value]; केवल स्टोर्ड प्रोसीजर, फंक्शन, ट्रिगर के अंदर उपयोग होता है।
DECLARE myVar INT DEFAULT 0;
उदाहरण: सेशन वेरिएबल के साथ फ़िल्टर
mysql> CREATE TABLE SessionVariableDemo (
-> EmployeeId VARCHAR(10), EmployeeName VARCHAR(30), EmployeeAge INT
-> );
mysql> 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);
mysql> SET @AgeGreaterThan30 := 30; mysql> SELECT * FROM SessionVariableDemo WHERE EmployeeAge > @AgeGreaterThan30;
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | EMP-104 | Sam | 32 | | EMP-105 | Mike | 35 | | EMP-106 | David | 33 | +------------+--------------+-------------+
अंतर: सेशन वेरिएबल (@) क्लाइंट सत्र के लिए ग्लोबल होते हैं, जबकि DECLARE वेरिएबल केवल BEGIN...END ब्लॉक के लिए स्थानीय होते हैं।