MSSQL DELETE – JOIN, EXISTS, TOP 사용하여 데이터 삭제하기
MS SQL에서는 DELETE 구문을 사용하여 테이블 또는 뷰에서 하나 이상의 행을 제거(삭제) 할 수 있습니다. 한 개 테이블에 WHERE 조건을 사용하여 데이터 삭제를 주로 많이 하지만 경우에 따라서 다른 테이블과 JOIN 및 EXISTS 사용하여 삭제하는 경우도 많습니다.
그럼 간단한 예제를 통해서 DELETE 구문에 대해서 알아보죠.
포스트 기준
– Microsoft SQL Server 2019
사용 예제
1. 전체 테이블 삭제 – 예제 1
/* 전체 테이블 삭제 - 동일한 결과 */
-- 1) 전체 테이블 삭제
DELETE FROM BS_DEMO_9
-- 2) FROM절 생략 가능
DELETE BS_DEMO_9
-- 3) TRUNCATE TABLE 구문을 사용하여 전체 삭제
TRUNCATE TABLE BS_DEMO_9
2. WHERE절 조건을 사용하여 특정 행 삭제 – 예제 2
-- 삭제 전 데이터 확인
SELECT *
FROM BS_DEMO_9
-- WHERE 조건 특정 행 삭제
DELETE
FROM BS_DEMO_9
WHERE P_ID > '1004' -- 1004 보다 큰 P_ID 삭제
-- 삭제 후 데이터 확인
SELECT *
FROM BS_DEMO_9
3. TOP 조건으로 데이터 삭제 – 예제 3
▶ 저 같은 경우는 거의 사용하지 않습니다.
-- 삭제 전 데이터 확인
SELECT *
FROM BS_DEMO_9
-- TOP 조건 특정 행 삭제
DELETE TOP(2) -- 첫번째 2개 행 삭제
FROM BS_DEMO_9
-- 삭제 후 데이터 확인
SELECT *
FROM BS_DEMO_9
4. JOIN 및 EXISTS 사용하여 데이터 삭제 – 예제 4
-- 삭제 전 데이터 확인
SELECT * FROM BS_DEMO_7
-- JOIN 대상 테이블 (예: 자퇴자)
SELECT * FROM BS_DEMO_6
-- 1. JOIN 사용하여 삭제
-- 예: 자퇴자 성적 리스트 삭제
DELETE A
FROM BS_DEMO_7 A
INNER JOIN BS_DEMO_6 B ON A.NAME = B.NAME
-- 2. EXISTS 사용하여 삭제
-- 예: 자퇴자 성적 리스트 삭제
DELETE A
FROM BS_DEMO_7 A
WHERE EXISTS (SELECT NAME
FROM BS_DEMO_6
WHERE NAME = A.NAME)
-- 삭제 후 데이터 확인
SELECT * FROM BS_DEMO_7
함께 보면 좋은 게시글
- MSSQL 논리 연산자 BETWEEN, EXISTS, IN, LIKE, NOT 등 (WHERE 절)
- MSSQL NULL 체크(조회) IS 연산자, 대체(치환) ISNULL 함수 (WHERE 절)
- MSSQL ORDER BY 절 데이터 정렬 방법(순서 지정) 오름차순, 내림차순
- MSSQL CASE WHEN THEN 조건식 사용법 – 식(1)
- MSSQL GROUP BY 절, HAVING 절 사용법
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
