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

MySQL에서 단일 행의 여러 열을 한 번에 업데이트하는 방법

MySQL에서는 UPDATE 문과 SET 절을 사용하여 하나의 행에 있는 여러 열의 값을 동시에 수정할 수 있습니다. 이 글에서는 실제 예제를 통해 특정 조건에 맞는 한 개의 행에서 두 개 이상의 열을 업데이트하는 방법을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

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

mysql> create table DemoTable
-> (
-> FirstName varchar(100),
-> Age int,
-> Score int
-> );
Query OK, 0 rows affected (0.62 sec)

FirstName(이름), Age(나이), Score(점수) 세 개의 열로 구성된 테이블이 만들어졌습니다.

2. 데이터 삽입하기

INSERT 명령어를 사용해 테이블에 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable values('Robert',21,78);
Query OK, 1 row affected (0.10 sec)

mysql> insert into DemoTable values('Bob',20,90);
Query OK, 1 row affected (0.21 sec)

mysql> insert into DemoTable values('Sam',22,69);
Query OK, 1 row affected (0.20 sec)

3. 테이블 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

출력 결과

+-----------+------+-------+
| FirstName | Age | Score |
+-----------+------+-------+
| Robert | 21 | 78 |
| Bob | 20 | 90 |
| Sam | 22 | 69 |
+-----------+------+-------+
3 rows in set (0.00 sec)

4. 여러 열을 동시에 업데이트하기

이제 FirstName이 'Bob'인 행만 대상으로 Age와 Score 두 개의 열을 한 번에 업데이트해 보겠습니다. 핵심은 SET 절에서 각 열의 값을 쉼표(,)로 구분하여 나열하는 것입니다.

mysql> update DemoTable
-> set Age=25,
-> Score=Score+9
-> where FirstName='Bob';
Query OK, 1 row affected (0.17 sec)
Rows matched: 1 Changed: 1 Warnings: 0

위 쿼리에서 주목할 점은 다음과 같습니다.

  • Age=25: 나이를 고정값 25로 변경합니다.
  • Score=Score+9: 기존 점수에 9를 더하는 연산식을 사용합니다. 즉, 현재 값을 기준으로 계산할 수도 있습니다.
  • WHERE FirstName='Bob': WHERE 절을 통해 업데이트 대상을 'Bob'이라는 이름을 가진 한 개의 행으로 제한합니다.

5. 업데이트 결과 확인하기

변경이 정상적으로 적용되었는지 테이블을 다시 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+-----------+------+-------+
| FirstName | Age | Score |
+-----------+------+-------+
| Robert | 21 | 78 |
| Bob | 25 | 99 |
| Sam | 22 | 69 |
+-----------+------+-------+
3 rows in set (0.00 sec)

'Bob'의 행만 Age가 20에서 25로, Score가 90에서 99로 변경된 것을 확인할 수 있습니다. 다른 행(Robert, Sam)은 전혀 영향을 받지 않았습니다.

마무리

MySQL에서 단일 행의 여러 열을 업데이트하려면 UPDATE 문의 SET 절에 열이름=값 형태를 쉼표로 구분해 나열하고, WHERE 절로 대상 행을 정확히 지정하면 됩니다. WHERE 절을 생략하면 테이블의 모든 행이 수정되므로 반드시 조건을 명시하는 것이 안전합니다.