MySQL 계산식에서 별칭(Alias) 활용하기
MySQL에서는 별칭(alias)을 사용하면 복잡한 계산식의 결과에 의미 있는 이름을 붙일 수 있어 쿼리의 가독성이 크게 향상됩니다. 특히 SELECT 절에서 상수나 연산 결과에 별칭을 지정한 뒤, 이를 서브쿼리 형태로 다시 참조하면 하나의 쿼리 안에서 값을 재사용할 수 있습니다. 이 글에서는 예제 테이블을 만들고, 계산 과정에서 별칭을 정의하고 활용하는 방법을 단계별로 살펴보겠습니다.
1단계: 테이블 생성
먼저 예제로 사용할 테이블을 생성합니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table AliasDemo -> ( -> Id int -> ); Query OK, 0 rows affected (0.52 sec)
2단계: 데이터 삽입
INSERT 명령을 사용해 테이블에 레코드를 추가합니다.
mysql> insert into AliasDemo values(20); Query OK, 1 row affected (0.45 sec) mysql> insert into AliasDemo values(30); Query OK, 1 row affected (0.20 sec) mysql> insert into AliasDemo values(40); Query OK, 1 row affected (0.83 sec)
3단계: 데이터 조회
SELECT 문으로 저장된 모든 레코드를 확인합니다.
mysql> select *from AliasDemo;
실행 결과는 다음과 같습니다.
+------+ | Id | +------+ | 20 | | 30 | | 40 | +------+ 3 rows in set (0.00 sec)
4단계: 계산식에서 별칭 정의하고 재사용하기
이제 계산에 별칭을 적용하는 방법을 살펴보겠습니다. 핵심은 AS 키워드로 별칭을 먼저 정의한 뒤, 서브쿼리 (select MyNumber)를 통해 해당 별칭을 다시 참조하는 것입니다.
mysql> select Id,100 as MyNumber ,(select MyNumber)*Id as MultiplyWith100 from AliasDemo;
실행 결과:
+------+----------+-----------------+ | Id | MyNumber | MultiplyWith100 | +------+----------+-----------------+ | 20 | 100 | 2000 | | 30 | 100 | 3000 | | 40 | 100 | 4000 | +------+----------+-----------------+ 3 rows in set (0.00 sec)
위 쿼리에서는 숫자 100에 'MyNumber'라는 별칭을 부여했습니다. 그런 다음 서브쿼리를 통해 이 값을 가져와 Id와 곱하고, 그 결과에도 'MultiplyWith100'이라는 별칭을 지정했습니다. 덕분에 각 열이 어떤 값을 의미하는지 한눈에 파악할 수 있어 쿼리 해석이 훨씬 쉬워집니다.
테이블 없이 단일 실행으로 구현하기
별칭 참조 기법은 테이블 없이 단일 실행으로도 동일하게 적용할 수 있습니다.
mysql> select 100 as MyNumber,(select MyNumber)*10 as MultiplyWith100;
실행 결과:
+----------+-----------------+ | MyNumber | MultiplyWith100 | +----------+-----------------+ | 100 | 1000 | +----------+-----------------+ 1 row in set (0.00 sec)
정리
MySQL에서 별칭은 AS 키워드로 정의하며, SELECT 절 내에서는 같은 수준에 정의된 별칭을 직접 참조할 수 없기 때문에 반드시 (select 별칭명)과 같은 서브쿼리 형태로 접근해야 합니다. 이 기법을 활용하면 상수나 계산식에 명확한 이름을 부여할 수 있어 쿼리의 가독성과 유지보수성이 크게 향상됩니다. 복잡한 보고서용 쿼리나 여러 단계의 연산이 필요한 경우에 특히 유용하니 실무에서 적극적으로 활용해 보시기 바랍니다.