MySQL에서 특정 행의 특정 컬럼(셀) 값을 비우고 싶을 때는 UPDATE 문과 WHERE 절을 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 특정 셀을 빈 문자열('')로 업데이트하는 과정을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable
(
Id int,
Name varchar(50)
);
Query OK, 0 rows affected (0.47 sec)2. 샘플 데이터 삽입하기
INSERT 명령을 사용하여 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable values(1001,'Robert'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(1002,'Sam'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(1003,'Tom'); Query OK, 1 row affected (0.10 sec)
3. 현재 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+------+--------+ | Id | Name | +------+--------+ | 1001 | Robert | | 1002 | Sam | | 1003 | Tom | +------+--------+ 3 rows in set (0.00 sec)
4. 특정 셀을 빈 값으로 업데이트하는 쿼리
다음은 MySQL에서 특정 셀을 빈 문자열로 업데이트하는 쿼리입니다. WHERE 절에 조건을 지정하지 않으면 테이블의 모든 행이 변경되므로 반드시 조건을 명시해야 합니다.
mysql> update DemoTable set Name='' where Id=1003; Query OK, 1 row affected (0.16 sec) Rows matched: 1 Changed: 1 Warnings: 0
위 쿼리는 Id가 1003인 행의 Name 값을 빈 문자열('')로 변경합니다.
5. 업데이트 결과 확인하기
변경된 내용이 제대로 적용되었는지 다시 한번 테이블을 조회해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+------+--------+ | Id | Name | +------+--------+ | 1001 | Robert | | 1002 | Sam | | 1003 | | +------+--------+ 3 rows in set (0.00 sec)
Id가 1003인 행의 Name 컬럼이 빈 값으로 성공적으로 업데이트된 것을 확인할 수 있습니다.
참고: 빈 문자열('')과 NULL의 차이
위 예제처럼 Name=''으로 설정하면 해당 셀은 빈 문자열이 되며, NULL과는 다른 값입니다. 만약 셀을 NULL로 설정하고 싶다면 아래와 같이 작성하면 됩니다.
mysql> update DemoTable set Name=NULL where Id=1003;
빈 문자열은 '값이 존재하지만 내용이 없는 상태'이고, NULL은 '값 자체가 존재하지 않는 상태'라는 점을 기억해 두면 데이터 처리 시 혼란을 피할 수 있습니다.