Language/SQL

[mysql] 데이터 검색 결과 다중 데이터 삭제하기

멱군 2023. 10. 14. 00:03

데이터베이스에서 필요 없어진 데이터나 특정 조건을 만족하는 데이터를 삭제하는 것은 자주 발생하는 작업입니다. 이를 위해 SQL의 DELETE 문과 WHERE 절을 활용하여 특정 조건에 맞는 데이터를 삭제할 수 있습니다. 본 글에서는 데이터 검색 결과를 다양한 상황에서 다중 데이터 삭제하는 방법을 다루어보겠습니다.

 

 

1. DELETE 기본적인 방법

SQL에서 데이터를 삭제하기 위한 기본 구문입니다.

DELETE FROM 테이블명 WHERE 조건;

 

2. 특정 테이블의 검색 결과를 이용한 삭제

다른 테이블에서 검색한 결과를 기반으로 데이터를 삭제할 수 있습니다.

DELETE FROM A
WHERE A.idx = (SELECT idx FROM B WHERE B.name = '홍길동');

 

위의 예제에서는 B 테이블에서 '홍길동'이라는 이름을 가진 데이터의 idx 값을 찾아, 그 값을 A 테이블에서 참조하여 해당 데이터를 삭제합니다.

 

3. 여러 조건을 만족하는 데이터 한번에 삭제

 

IN 연산자를 활용하여 여러 조건을 만족하는 데이터를 한 번에 삭제할 수 있습니다.

DELETE FROM A
WHERE A.idx IN (SELECT idx FROM B WHERE B.name IN ('홍길동', '김유신'));

 

4. 동일 테이블 내에서의 검색 결과를 이용한 삭제

같은 테이블에서 특정 조건을 만족하는 데이터를 찾아 삭제하려면 서브쿼리를 사용합니다.

DELETE FROM A
WHERE idx IN (
  SELECT idx
  FROM (
      SELECT * FROM A WHERE name = '홍길동'
  ) AS resultTable
);

 

이 방식은 A 테이블에서 '홍길동'이라는 이름을 가진 데이터의 idx 값을 찾은 후, 그 값을 이용하여 A 테이블에서 해당 데이터를 삭제합니다.

더 자세히 설명한 글을 보시려면 다음 링크를 참고하세요.

 

결론

데이터베이스 관리에서 데이터 삭제는 필수적인 작업 중 하나입니다. 상황에 따라 다양한 방법으로 데이터를 삭제할 수 있으며, 적절한 방법을 선택하여 효율적으로 작업을 수행할 수 있습니다.