데이터베이스에서 필요 없어진 데이터나 특정 조건을 만족하는 데이터를 삭제하는 것은 자주 발생하는 작업입니다. 이를 위해 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 테이블에서 해당 데이터를 삭제합니다.
더 자세히 설명한 글을 보시려면 다음 링크를 참고하세요.
결론
데이터베이스 관리에서 데이터 삭제는 필수적인 작업 중 하나입니다. 상황에 따라 다양한 방법으로 데이터를 삭제할 수 있으며, 적절한 방법을 선택하여 효율적으로 작업을 수행할 수 있습니다.
'Language > SQL' 카테고리의 다른 글
MySQL에서 문자열 숫자를 숫자로 정렬하기 CAST와 CONVERT 활용법 (0) | 2024.02.28 |
---|---|
[MySQL] 데이터 이전하는 쿼리 SELECT를 활용한 INSERT (0) | 2023.10.14 |
[MySQL] JPA group by 구문에서 error (0) | 2023.08.21 |
[Mysql] 컬럼값이 "학년/반/번호" 일 때 "/"로 나눈 값을 기준으로 정렬하기 (0) | 2023.03.14 |
[MYSQL] SUBSTRING_INDEX() 함수로 구분자 기준(콤마 분리) 분할하기 (0) | 2023.03.14 |