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

MySQL 쿼리에서 입력 매개변수(변수) 선언 및 사용 방법

MySQL에서는 SET 명령어를 사용해 사용자 정의 변수(user-defined variable)를 손쉽게 선언할 수 있습니다. 이렇게 만든 변수는 이후 SELECT 쿼리의 WHERE 절 등에서 입력 매개변수처럼 활용할 수 있어, 반복적인 조건 조회 작업을 훨씬 효율적으로 처리할 수 있습니다.

MySQL 변수 선언 기본 구문

MySQL에서 변수를 설정하는 기본 구문은 다음과 같습니다. 변수 이름 앞에는 반드시 @ 기호를 붙여야 하며, 값 할당에는 := 연산자를 사용합니다.

set @yourVariableName:=yourValue;
select *from yourTableName where yourColumnName=@yourVariableName;

예제 테이블 생성하기

실습을 위해 먼저 간단한 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
   Id int,
   FirstName varchar(20),
   LastName varchar(20)
);
Query OK, 0 rows affected (0.83 sec)

다음으로 INSERT 명령어를 사용해 테이블에 샘플 데이터를 삽입합니다.

mysql> insert into DemoTable values(10,'Carol','Taylor');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values(20,'John','Doe');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(30,'John','Smith');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(40,'David','Miller');
Query OK, 1 row affected (0.18 sec)

SELECT 명령어로 테이블에 저장된 전체 레코드를 확인해 보겠습니다.

mysql> select *from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+------+-----------+----------+
| Id   | FirstName | LastName |
+------+-----------+----------+
| 10   | Carol     | Taylor   |
| 20   | John      | Doe      |
| 30   | John      | Smith    |
| 40   | David     | Miller   |
+------+-----------+----------+
4 rows in set (0.00 sec)

사용자 정의 변수를 활용한 조건 조회

이제 MySQL에서 사용자 정의 변수를 실제로 설정하고 활용하는 방법을 살펴보겠습니다. 아래 예제에서는 @myId라는 변수에 값 30을 할당한 뒤, 해당 값을 WHERE 절의 조건으로 사용합니다.

mysql> set @myId:=30;
Query OK, 0 rows affected (0.00 sec)
mysql> select *from DemoTable where Id=@myId;

변수를 활용한 위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+------+-----------+----------+
| Id   | FirstName | LastName |
+------+-----------+----------+
| 30   | John      | Smith    |
+------+-----------+----------+
1 row in set (0.00 sec)

정리

MySQL에서 입력 매개변수 역할을 하는 변수는 SET @변수명 := 값; 형태로 선언하며, 세션 단위로 유지됩니다. 한 번 선언된 변수는 동일한 연결 세션 내에서 여러 쿼리에 재사용할 수 있으므로, 조건값이 자주 바뀌는 상황에서 코드의 가독성과 유지보수성을 크게 높여 줍니다.