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

터미널에서 결과를 출력하지 않고 MySQL 쿼리를 실행하는 방법

MySQL에서 쿼리를 실행하면서 그 결과를 화면에 출력하지 않아야 하는 경우가 있습니다. 예를 들어 계산 결과만 변수에 저장해 두고 나중에 활용하고 싶을 때 유용합니다. 이때 사용자 정의 변수(User-defined Variable)를 활용하면 간단하게 해결할 수 있습니다.

1. 테스트용 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable709 (Amount int);
Query OK, 0 rows affected (0.62 sec)

2. 데이터 삽입

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

mysql> insert into DemoTable709 values(100);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable709 values(560);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable709 values(7800);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable709 values(1020);
Query OK, 1 row affected (0.15 sec)

3. 저장된 데이터 확인

SELECT문으로 테이블의 전체 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable709;

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

+--------+
| Amount |
+--------+
| 100    |
| 560    |
| 7800   |
| 1020   |
+--------+
4 rows in set (0.00 sec)

4. 결과를 출력하지 않고 쿼리 실행하기

핵심은 SELECT 결과를 직접 화면에 출력하는 대신, @로 시작하는 사용자 정의 변수에 할당하는 것입니다. 변수에 값을 대입하는 SET 구문은 결과 집합을 반환하지 않으므로, 쿼리는 실행되지만 결과는 출력되지 않습니다.

mysql> set @TotalAmount=(select sum(Amount) from DemoTable709);
Query OK, 0 rows affected (0.00 sec)

위 쿼리는 Amount 컬럼의 합계를 계산하여 @TotalAmount 변수에 저장합니다. "Query OK, 0 rows affected" 메시지만 표시되고 실제 값은 출력되지 않는 것을 확인할 수 있습니다.

저장된 변수 값 확인하기

나중에 저장된 값을 확인하고 싶다면 다음과 같이 변수를 단순히 SELECT 하면 됩니다.

mysql> select @TotalAmount;

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

+--------------+
| @TotalAmount |
+--------------+
| 9480         |
+--------------+
1 row in set (0.05 sec)

정리

이처럼 SET @변수명 = (서브쿼리) 형태를 사용하면 쿼리 실행 결과를 세션 동안 변수에 보관할 수 있습니다. 스크립트 작성 시 중간 계산 결과를 숨기거나, 여러 쿼리에서 동일한 값을 재사용해야 할 때 매우 유용한 기법입니다.