MySQL에서 두 개의 열에 저장된 숫자 값을 서로 나누고, 그 계산 결과를 새로운 열로 함께 표시해야 하는 경우가 자주 있습니다. 이 글에서는 SELECT 문과 별칭(Alias)을 활용해 이 작업을 간단하게 처리하는 방법을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 두 개의 정수형(INT) 열을 가진 테이블을 생성합니다.
mysql> create table DemoTable719 (FirstNumber int, SecondNumber int); Query OK, 0 rows affected (0.57 sec)
2. 샘플 데이터 삽입하기
INSERT 명령어를 사용하여 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable719 values(20,10); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable719 values(500,50); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable719 values(400,20); Query OK, 1 row affected (0.11 sec)
3. 전체 레코드 확인하기
SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 조회합니다.
mysql> select *from DemoTable719;
위 쿼리는 다음과 같은 결과를 출력합니다.
+-------------+--------------+ | FirstNumber | SecondNumber | +-------------+--------------+ | 20 | 10 | | 500 | 50 | | 400 | 20 | +-------------+--------------+ 3 rows in set (0.00 sec)
4. 두 열을 나누어 새 열에 결과 표시하기
두 열의 숫자를 나누고 그 결과를 새로운 열로 표시하려면 나누기 연산자(/)와 AS 키워드를 사용하면 됩니다. 별칭을 지정하면 계산된 값이 해당 이름의 새 열처럼 출력됩니다.
mysql> select *, FirstNumber/SecondNumber AS Result from DemoTable719;
실행 결과는 다음과 같습니다.
+-------------+--------------+---------+ | FirstNumber | SecondNumber | Result | +-------------+--------------+---------+ | 20 | 10 | 2.0000 | | 500 | 50 | 10.0000 | | 400 | 20 | 20.0000 | +-------------+--------------+---------+ 3 rows in set (0.00 sec)
위 출력에서 볼 수 있듯이, 기존 열들은 그대로 유지되면서 나눗셈 결과가 Result라는 새로운 열에 소수점 네 자리까지 표시됩니다.
참고: 0으로 나누는 상황 방지하기
실무 환경에서는 나누는 값(제수)이 0일 가능성도 고려해야 합니다. MySQL에서 0으로 나누면 NULL이 반환되므로, NULLIF() 함수를 함께 사용하면 더 안전하게 처리할 수 있습니다.
mysql> select *, FirstNumber/NULLIF(SecondNumber, 0) AS Result from DemoTable719;
이렇게 하면 SecondNumber가 0인 행의 결과는 오류 없이 NULL로 반환되어 데이터의 안정성을 높일 수 있습니다.