MySQL에서는 UPDATE 명령을 사용하여 테이블의 모든 레코드에 대해 특정 열에 동일한 값을 한 번에 설정할 수 있습니다. 이 방법은 조건(WHERE 절) 없이 실행되기 때문에 해당 열의 모든 행이 일괄적으로 변경됩니다.
NULL 값으로 설정하는 방법
특정 열의 모든 레코드를 NULL로 설정하려면 다음과 같은 문법을 사용합니다.
UPDATE yourTableName SET yourColumnName = NULL;
빈 문자열로 설정하는 방법
NULL 대신 빈 문자열('')을 저장하고 싶다면 아래와 같이 작성합니다.
UPDATE yourTableName SET yourColumnName = '';
참고: NULL은 '값이 없음'을 의미하는 반면, 빈 문자열은 실제로 길이가 0인 문자열이 저장됩니다. 두 값은 서로 다르게 처리되므로 용도에 맞게 선택해야 합니다.
실습 예제
위 개념을 이해하기 위해 먼저 테이블을 생성해 보겠습니다.
mysql> CREATE TABLE StudentDemo
-> (
-> Studentid INT,
-> StudentName VARCHAR(100),
-> Age INT
-> );
Query OK, 0 rows affected (0.64 sec)다음으로 테이블에 레코드를 삽입합니다.
mysql> INSERT INTO StudentDemo VALUES(1,'Johnson',23); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO StudentDemo VALUES(2,'Carol',24); Query OK, 1 row affected (0.16 sec) mysql> INSERT INTO StudentDemo VALUES(3,'David',20); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO StudentDemo VALUES(4,'Bob',21); Query OK, 1 row affected (0.19 sec)
SELECT 문을 사용하여 테이블의 모든 레코드를 확인해 보겠습니다.
mysql> SELECT * FROM StudentDemo;
실행 결과는 다음과 같습니다.
+-----------+-------------+------+ | Studentid | StudentName | Age | +-----------+-------------+------+ | 1 | Johnson | 23 | | 2 | Carol | 24 | | 3 | David | 20 | | 4 | Bob | 21 | +-----------+-------------+------+ 4 rows in set (0.00 sec)
Age 열을 NULL로 업데이트하기
이제 UPDATE 문을 사용하여 모든 레코드의 'Age' 열 값을 NULL로 변경합니다.
mysql> UPDATE StudentDemo SET Age=NULL; Query OK, 4 rows affected (0.14 sec) Rows matched: 4 Changed: 4 Warnings: 0
결과 메시지를 보면 총 4개의 행이 매칭되었고, 4개의 행이 성공적으로 변경된 것을 확인할 수 있습니다.
업데이트 결과 확인
변경이 정상적으로 적용되었는지 다시 조회해 보겠습니다.
mysql> SELECT * FROM StudentDemo;
'Age' 열이 성공적으로 NULL로 업데이트된 것을 확인할 수 있습니다.
+-----------+-------------+------+ | Studentid | StudentName | Age | +-----------+-------------+------+ | 1 | Johnson | NULL | | 2 | Carol | NULL | | 3 | David | NULL | | 4 | Bob | NULL | +-----------+-------------+------+ 4 rows in set (0.00 sec)
주의 사항
WHERE 절 없이 UPDATE 문을 실행하면 테이블의 모든 레코드가 영향을 받습니다. 따라서 운영 환경에서는 실행 전에 데이터 백업을 하거나, 트랜잭션(BEGIN, ROLLBACK)을 활용하여 안전하게 작업하는 것이 좋습니다. 또한 해당 열이 NOT NULL 제약 조건을 가지고 있다면 NULL 설정 시 오류가 발생하므로, 테이블 구조를 미리 확인해야 합니다.