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

MySQL에서 DATE 값을 기준으로 UPDATE 문 실행하는 방법

MySQL에서는 UPDATE 문과 WHERE 절을 함께 사용하면 특정 조건에 맞는 레코드만 골라서 수정할 수 있습니다. 이 글에서는 DATE 타입 컬럼의 값을 기준으로 테이블을 업데이트하는 과정을 예제와 함께 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다. Id는 자동 증가(AUTO_INCREMENT) 기본 키로, Name은 문자열, AdmissionDate는 DATE 타입으로 정의했습니다.

mysql> create table DemoTable(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name varchar(100),
    AdmissionDate date
);
Query OK, 0 rows affected (0.42 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용해 네 개의 레코드를 추가합니다.

mysql> insert into DemoTable(Name,AdmissionDate) values('Chris','2019-11-21');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(Name,AdmissionDate) values('Mike','2019-03-11');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(Name,AdmissionDate) values('Sam','2018-04-01');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(Name,AdmissionDate) values('Carol','2019-05-01');
Query OK, 1 row affected (0.40 sec)

3. 저장된 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+----+-------+---------------+
| Id | Name  | AdmissionDate |
+----+-------+---------------+
|  1 | Chris | 2019-11-21    |
|  2 | Mike  | 2019-03-11    |
|  3 | Sam   | 2018-04-01    |
|  4 | Carol | 2019-05-01    |
+----+-------+---------------+
4 rows in set (0.00 sec)

4. DATE 값을 기준으로 UPDATE 실행하기

이제 특정 날짜 값(여기서는 2019-04-01)을 기준으로 레코드를 업데이트해 보겠습니다. WHERE 절에 조건을 지정하면 해당 조건에 일치하는 행만 선택적으로 변경되며, 나머지 데이터는 그대로 유지됩니다.

mysql> update DemoTable set Name='Robert',AdmissionDate='2019-04-01' where Id=3;
Query OK, 1 row affected (0.14 sec)
Rows matched: 1 Changed: 1 Warnings: 0

실행 결과 메시지를 보면 Rows matched: 1, Changed: 1로 표시되어, 조건에 맞는 한 개의 행이 실제로 변경되었음을 알 수 있습니다.

참고: UPDATE 문 사용 시 WHERE 절을 생략하면 테이블의 모든 행이 한꺼번에 수정되므로 주의해야 합니다. 중요한 데이터를 다룰 때는 먼저 SELECT 문으로 조건을 검증한 후 UPDATE를 실행하는 것이 안전합니다.

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

변경이 정상적으로 적용되었는지 SELECT 문으로 다시 확인해 보겠습니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+----+--------+---------------+
| Id | Name   | AdmissionDate |
+----+--------+---------------+
|  1 | Chris  | 2019-11-21    |
|  2 | Mike   | 2019-03-11    |
|  3 | Robert | 2019-04-01    |
|  4 | Carol  | 2019-05-01    |
+----+--------+---------------+
4 rows in set (0.00 sec)

Id가 3인 레코드의 Name이 'Sam'에서 'Robert'로, AdmissionDate가 '2018-04-01'에서 '2019-04-01'로 변경된 것을 확인할 수 있습니다. 이처럼 UPDATE 문에 적절한 조건을 지정하면 DATE 값을 포함한 원하는 컬럼의 값을 안전하고 정확하게 수정할 수 있습니다.