세션 변수인 @anyVariablename을 사용하여 변수를 선언할 수 있습니다. 세션 변수를 생성하기 위해서는 SET 명령어를 사용해야 합니다.
구문은 다음과 같습니다.
SET @anyVariableName:=anyValue;
DECLARE 명령을 사용하여 지역 변수를 선언할 수 있습니다. 구문은 다음과 같습니다.
DECLARE yourVariableName datatype
변수 생성 시 기본값을 설정할 수 있습니다. 구문은 다음과 같습니다.
DECLARE yourVariableName datatype default ‘yourValue’
다음은 세션 변수의 데모입니다. 이해를 돕기 위해 표를 만들어 보겠습니다.
테이블 생성 쿼리는 다음과 같습니다.
mysql> create table SessionVariableDemo -> ( -> EmployeeId varchar(10), -> EmployeeName varchar(30), -> EmployeeAge int -> ); Query OK, 0 rows affected (0.70 sec)
삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다
mysql> insert into SessionVariableDemo values('EMP-101','Carol',30); Query OK, 1 row affected (0.20 sec) mysql> insert into SessionVariableDemo values('EMP-102','John',26); Query OK, 1 row affected (0.20 sec) mysql> insert into SessionVariableDemo values('EMP-103','Bob',25); Query OK, 1 row affected (0.19 sec) mysql> insert into SessionVariableDemo values('EMP-104','Sam',32); Query OK, 1 row affected (0.14 sec) mysql> insert into SessionVariableDemo values('EMP-105','Mike',35); Query OK, 1 row affected (0.11 sec) mysql> insert into SessionVariableDemo values('EMP-106','David',33); Query OK, 1 row affected (0.15 sec)
select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다
mysql> select *from SessionVariableDemo;
다음은 출력입니다.
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | EMP-101 | Carol | 30 | | EMP-102 | John | 26 | | EMP-103 | Bob | 25 | | EMP-104 | Sam | 32 | | EMP-105 | Mike | 35 | | EMP-106 | David | 33 | +------------+--------------+-------------+ 6 rows in set (0.00 sec)
이제 SET 명령을 사용하여 세션 변수를 생성합니다. 그런 다음 쿼리에서 이 변수를 사용하여 30세 이상의 모든 직원 레코드를 가져옵니다.
SET 명령을 사용하여 세션 변수를 생성해 보겠습니다.
mysql> set @AgeGreaterThan30:=30; Query OK, 0 rows affected (0.00 sec)
다음은 세션 변수를 사용하여 30세 이상의 직원 레코드를 가져오는 쿼리입니다.
mysql> select *from SessionVariableDemo where EmployeeAge > @AgeGreaterThan30;
다음은 출력입니다.
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | EMP-104 | Sam | 32 | | EMP-105 | Mike | 35 | | EMP-106 | David | 33 | +------------+--------------+-------------+ 3 rows in set (0.00 sec)