저장된 가격에 20%의 판매세가 이미 포함되어 있다고 가정해 보겠습니다. 이런 경우 UPDATE 문과 간단한 나눗셈 연산만으로 세전 가격을 한 번에 계산할 수 있습니다. 예제를 통해 단계별로 살펴보겠습니다.
1. 테이블 생성
먼저 가격을 저장할 테이블을 생성합니다.
mysql> create table DemoTable
(
Price int
);
Query OK, 0 rows affected (1.09 sec)2. 샘플 데이터 입력
INSERT 명령을 사용해 몇 개의 레코드를 삽입합니다.
mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(40); Query OK, 1 row affected (0.07 sec) mysql> insert into DemoTable values(80); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(60); Query OK, 1 row affected (0.18 sec)
3. 현재 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+-------+ | Price | +-------+ | 20 | | 40 | | 80 | | 60 | +-------+ 4 rows in set (0.00 sec)
4. 20% 세금 제거 쿼리 실행
핵심은 나눗셈의 기준값입니다. 가격에 20% 판매세가 포함되어 있으므로, 세금 포함 가격은 원래 가격의 120/100 즉 1.2배입니다. 따라서 Price 값을 1.2로 나누면 세전 가격을 얻을 수 있습니다.
mysql> update DemoTable set Price=Price/1.2; Query OK, 4 rows affected (0.11 sec) Rows matched: 4 Changed: 4 Warnings: 0
5. 결과 확인
업데이트 후 테이블 레코드를 다시 조회해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+-------+ | Price | +-------+ | 17 | | 33 | | 67 | | 50 | +-------+ 4 rows in set (0.00 sec)
참고 사항
Price 컬럼이 INT 타입이기 때문에 소수점 이하 값은 자동으로 반올림되어 저장됩니다. 예를 들어 20 ÷ 1.2 = 16.67이지만 결과는 17로 표시됩니다. 만약 정확한 소수점 값을 유지하고 싶다면 컬럼 타입을 DECIMAL(10,2)로 변경한 후 계산하는 것이 좋습니다.