들어가기🤔
평소 회사에서 DML 문을 날릴 때 DELETE 쿼리는 될 수 있으면 작성하지 않고 있다.
실수로 데이터를 다 날릴까봐.. ㅎㅎ
근데! 이번에 서브쿼리의 특정 칼럼의 데이터와 일치하는 대량의 데이터들을 삭제해야 하는 경우가 발생하였다.
빨리 삭제해야되는데, 해당 쿼리가 생각나지 않아... 딜레이된 경험이 있어서
블로그에 작성하고 두고두고 기억해야 하겠다!
DELETE 쿼리
조건 삭제 쿼리
--DELETE FROM 계정테이블 aa
where aa.이름 like '박%'
and aa.성별 = '남'
;
IN절을 사용한 조건 삭제 쿼리
--DELETE FROM 계정테이블 aa
where aa.계정번호 IN (
SELECT DISTINCT 계정번호
FROM 특별한계정
)
두 개의 테이블을 조인하여 한개의 테이블의 데이터를 삭제하는 쿼리 (DELETE JOIN문)
--DELETE FROM 계정테이블 aa
USING 특별한계정 bb
WHERE aa.계정번호 = bb.계정번호 AND aa.계정이름 = bb.계정이름 AND aa.성별 = bb.성별
;
--or
--여러개의 테이블이 조인된 서브쿼리 데이터 기반으로,
--특정테이블의 데이터를 삭제해야되는 경우.
--DELETE FROM 계정테이블 aa
USING (
SELECT 계정번호, 계정이름, 성별
FROM A, B, C ~~
WHERE ~~~
GROUP BY 계정번호, 계정이름, 성별
) bb
WHERE aa.계정번호 = bb.계정번호 AND aa.계정이름 = bb.계정이름 AND aa.성별 = bb.성별
;
'DB' 카테고리의 다른 글
[PostgreSQL] POSITION 함수 사용법 (0) | 2025.04.15 |
---|---|
[PostgreSQL] DATE_TRUNC (0) | 2025.02.07 |
[PostgreSQL] DISTINCT ON (0) | 2024.08.20 |