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

MySQL 테이블에서 여러 행을 한 번에 삭제하는 방법

MySQL 테이블에서 여러 행을 한 번에 삭제하려면 DELETE 문과 함께 WHERE 절을 사용하면 됩니다. WHERE 절이 삭제할 대상 행들을 특정 조건으로 식별해 주기 때문에, 조건에 해당하는 모든 행이 하나의 쿼리로 제거됩니다.

예제

먼저 'names' 테이블의 현재 데이터를 확인해 보겠습니다.

mysql> Select * from names;
+------+-----------+
| id   | name      |
+------+-----------+
| 1    | Rahul     |
| 2    | Gaurav    |
| 3    | Raman     |
| 5    | Ram       |
+------+-----------+
4 rows in set (0.00 sec)

이제 WHERE 절을 사용해 id가 2보다 큰 행들을 삭제해 보겠습니다.

mysql> DELETE from names WHERE id > 2;
Query OK, 2 rows affected (0.04 sec)

위 쿼리는 'names' 테이블에서 id가 2보다 큰 두 개의 행(id 3과 id 5)을 WHERE 절이 식별했기 때문에 여러 행을 동시에 삭제했습니다. 실행 결과를 다시 확인해 보면 다음과 같습니다.

mysql> Select * from names;
+------+-----------+
| id   | name      |
+------+-----------+
| 1    | Rahul     |
| 2    | Gaurav    |
+------+-----------+
2 rows in set (0.00 sec)

참고: 다양한 조건으로 여러 행 삭제하기

WHERE 절에는 비교 연산자 외에도 다양한 조건을 사용할 수 있습니다.

IN 연산자 사용: 특정 값들에 해당하는 행만 선택적으로 삭제할 수 있습니다.

mysql> DELETE FROM names WHERE id IN (1, 3);

AND / OR 조건 조합: 여러 조건을 조합해 더 정교하게 삭제 대상을 지정할 수 있습니다.

mysql> DELETE FROM names WHERE name = 'Ram' OR id = 2;

주의사항: WHERE 절 없이 DELETE 문을 실행하면 테이블의 모든 행이 삭제되므로, 반드시 삭제 조건을 신중하게 작성해야 합니다. 중요한 데이터를 다룰 때는 작업 전에 백업을 해두는 것이 안전합니다.