MySQL에서 DELETE 문과 WHERE 절을 함께 사용하면 특정 조건에 맞는 레코드만 선택적으로 삭제할 수 있습니다. 이 글에서는 EmployeeId(직원 ID)를 기준으로 테이블에서 원하는 레코드 하나를 삭제하는 전체 과정을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 실습에 사용할 테이블을 생성합니다. EmployeeId와 EmployeeName 두 개의 컬럼으로 구성된 간단한 직원 테이블입니다.
mysql> create table DemoTable615 (EmployeeId varchar(100),EmployeeName varchar(100)); Query OK, 0 rows affected (0.62 sec)
2. 샘플 데이터 삽입하기
INSERT 명령어를 사용해 테이블에 직원 정보를 몇 건 입력합니다.
mysql> insert into DemoTable615 values('EMP-101','Adam');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable615 values('EMP-1001','David');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable615 values('EMP-1002','Chris');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable615 values('EMP-1003','Robert');
Query OK, 1 row affected (0.21 sec)3. 전체 레코드 조회하기
SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.
mysql> select *from DemoTable615;
실행 결과는 다음과 같습니다.
+------------+--------------+ | EmployeeId | EmployeeName | +------------+--------------+ | EMP-101 | Adam | | EMP-1001 | David | | EMP-1002 | Chris | | EMP-1003 | Robert | +------------+--------------+ 4 rows in set (0.00 sec)
현재 총 4개의 레코드가 저장되어 있습니다.
4. DELETE 문으로 특정 레코드 삭제하기
이제 WHERE 절에서 EmployeeId가 'EMP-1002'인 레코드를 지정하여 삭제합니다.
mysql> delete from DemoTable615 where EmployeeId='EMP-1002'; Query OK, 1 row affected (0.13 sec)
쿼리가 정상적으로 실행되어 1개의 행이 삭제되었습니다.
5. 삭제 결과 확인하기
다시 SELECT 문을 실행해 테이블의 현재 상태를 확인합니다.
mysql> select *from DemoTable615;
실행 결과는 다음과 같습니다.
+------------+--------------+ | EmployeeId | EmployeeName | +------------+--------------+ | EMP-101 | Adam | | EMP-1001 | David | | EMP-1003 | Robert | +------------+--------------+ 3 rows in set (0.00 sec)
'EMP-1002'(Chris)에 해당하는 레코드가 성공적으로 삭제되고, 나머지 3개의 레코드만 남아 있는 것을 확인할 수 있습니다.
핵심 정리
MySQL에서 특정 레코드를 삭제하려면 DELETE FROM 테이블명 WHERE 조건; 형식의 구문을 사용합니다. WHERE 절을 생략하면 테이블의 모든 레코드가 삭제되므로, 반드시 삭제 대상을 정확히 지정하는 조건을 포함해야 합니다. 또한 중요한 데이터를 다룰 때는 삭제 전 SELECT 문으로 대상 레코드를 미리 확인하는 습관을 들이는 것이 안전합니다.