Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 @ 기호로 사용자 정의 변수 활용하는 방법

MySQL에서 @ 기호란 무엇인가?

MySQL에서 @ 기호사용자 정의 변수(user-defined variable)를 선언하고 값을 저장할 때 사용됩니다. SET 명령어와 함께 사용하면 세션 내에서 값을 저장해 두었다가 이후 쿼리에서 재사용할 수 있어 매우 유용합니다.

기본 문법

사용자 정의 변수를 설정하는 기본 문법은 다음과 같습니다.

SET @변수명 := 값;

또는 아래와 같이 작성할 수도 있습니다.

SET @변수명 = 값;

예제 테이블 생성하기

먼저 실습에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1331
    -> (
    -> Id int,
    -> Name varchar(20)
    -> );
Query OK, 0 rows affected (0.51 sec)

데이터 삽입하기

INSERT 명령어를 사용하여 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable1331 values(10,'Chris');
Query OK, 1 row affected (0.71 sec)
mysql> insert into DemoTable1331 values(101,'David');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1331 values(40,'Bob');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1331 values(30,'Mike');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1331 values(60,'John');
Query OK, 1 row affected (0.12 sec)

저장된 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable1331;

실행 결과는 다음과 같습니다.

+------+-------+
| Id   | Name  |
+------+-------+
|   10 | Chris |
|  101 | David |
|   40 | Bob   |
|   30 | Mike  |
|   60 | John  |
+------+-------+
5 rows in set (0.00 sec)

@ 변수를 활용한 쿼리 실행

이제 @ 기호를 사용하여 변수를 설정하고, 해당 변수를 WHERE 조건절에서 활용해 보겠습니다.

mysql> set @Value:=40;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from DemoTable1331 where Id > @Value;

위 쿼리는 @Value 변수에 40을 저장한 후, Id가 40보다 큰 레코드만 조회합니다. 실행 결과는 다음과 같습니다.

+------+-------+
| Id   | Name  |
+------+-------+
|  101 | David |
|   60 | John  |
+------+-------+
2 rows in set (0.03 sec)

정리 및 참고 사항

  • @ 기호는 세션 단위의 사용자 정의 변수를 선언하는 데 사용됩니다.
  • SET 명령어 또는 SELECT 문 안에서 직접 초기화할 수 있습니다.
  • 변수는 현재 연결(세션)이 종료되면 자동으로 소멸됩니다.
  • WHERE 절, ORDER BY 절 등 다양한 위치에서 조건 값으로 활용할 수 있습니다.

이처럼 @ 변수를 활용하면 반복되는 값을 한 번만 선언하여 여러 쿼리에서 재사용할 수 있어 코드의 가독성과 유지보수성이 향상됩니다.