MySQL에서 열의 모든 값에서 동일한 값 빼는 방법
MySQL에서 특정 열(column)의 모든 값에서 동일한 숫자를 빼야 하는 경우가 종종 있습니다. 이 글에서는 SELECT 문을 사용해 원본 데이터를 변경하지 않고 계산된 결과만 확인하는 방법과, 실제 테이블의 값을 영구적으로 수정하는 UPDATE 문까지 단계별로 살펴보겠습니다.
1단계: 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable741 (Number int);
Query OK, 0 rows affected (0.61 sec)
2단계: 레코드 삽입
INSERT 명령어를 사용해 테이블에 여러 개의 레코드를 추가합니다.
mysql> insert into DemoTable741 values(70);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable741 values(55);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable741 values(89);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable741 values(79);
Query OK, 1 row affected (0.35 sec)
mysql> insert into DemoTable741 values(34);
Query OK, 1 row affected (0.17 sec)
3단계: 전체 레코드 조회
SELECT 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable741;
실행 결과는 다음과 같습니다.
+--------+
| Number |
+--------+
| 70 |
| 55 |
| 89 |
| 79 |
| 34 |
+--------+
5 rows in set (0.00 sec)
4단계: 모든 값에서 동일한 값 빼기
열의 모든 값에서 동일한 양(여기서는 20)을 빼려면 산술 연산자를 활용하면 됩니다. 아래 쿼리처럼 열 이름에 직접 뺄셈을 적용하고, AS 키워드로 별칭(Alias)을 지정하면 결과를 더 깔끔하게 확인할 수 있습니다.
mysql> select (Number-20) AS Result from DemoTable741;
실행 결과는 다음과 같습니다.
+--------+
| Result |
+--------+
| 50 |
| 35 |
| 69 |
| 59 |
| 14 |
+--------+
5 rows in set (0.00 sec)
참고: 실제 테이블의 값을 변경하려면?
위의 SELECT 방식은 원본 데이터를 그대로 유지한 상태에서 계산 결과만 보여줍니다. 만약 테이블에 저장된 값 자체를 영구적으로 수정하고 싶다면 UPDATE 문을 사용해야 합니다.
mysql> update DemoTable741 set Number = Number - 20;
Query OK, 5 rows affected (0.12 sec)
Rows matched: 5 Changed: 5 Warnings: 0
UPDATE 실행 후 다시 SELECT 문으로 데이터를 조회하면 모든 값이 20씩 감소한 것을 확인할 수 있습니다. 또한 WHERE 절을 추가하면 특정 조건에 맞는 행만 선택적으로 수정할 수 있으므로, 대량의 데이터를 일괄 조정할 때 매우 유용합니다.