[MSSQL] DELETE 문 사용법 3가지 (데이터 삭제)

SQL Server에서 테이블의 데이터를 삭제하기 위해서는 DELETE 문을 사용하면 된다. SQL Server에서는 DELETE 문에서 조인을 하여 데이터를 삭제할 수 있으며, 서브쿼리를 사용하여 삭제할 데이터 범위를 조회하여 데이터를 삭제할 수도 있다. MERGE 문을 사용하면 INSERT, UPDATE, DELETE를 동시에 수행할 수 있다.

 

MSSQL DELETE문 사용법

목차
  1. 기본적인 DELETE 방법
  2. 다른 테이블과 조인하여 DELETE 방법
  3. 서브쿼리를 사용하여 DELETE 방법

 

기본적인 DELETE 방법

DELETE 
  FROM dbo.dept
 WHERE deptno = 40

 

부서(dept) 테이블에서 부서코드(deptno) "40"에 해당하는 행을 삭제하는 예제이다.

 

DELETE dbo.dept
 WHERE deptno = 40

 

DELETE 문에서는 FROM 키워드를 생략하고 DELETE 키워드 뒤에 테이블명을 기술해도 된다.

 

다른 테이블과 조인하여 DELETE 방법

DELETE dbo.dept
  FROM dbo.emp a
 WHERE a.ename = 'SCOTT'
   AND dept.deptno = a.deptno

 

 

부서(dept) 테이블과 직원(emp) 테이블과 조인하여 직원(emp) 테이블의 'SCOTT'의 부서코드(deptno) "20"을 삭제하는 예제이다. 부서(dept) 테이블에서 부서코드 "20"이 삭제된 것을 확인할 수 있다.

 

DELETE 문의 FROM 절을 생략하여 작성해였으며 DELETE FROM dbo.dept FROM dbo.emp a ... 이렇게 FROM 절을 2번 작성해도 정상적으로 작동한다.

 

DELETE dbo.dept
  FROM dbo.emp a
  JOIN dbo.emp b
    ON a.mgr = b.empno
 WHERE b.ename = 'SCOTT'
   AND dept.deptno = b.deptno

 

 

FROM 절에서 여러 개의 테이블을 조인하는 예제이며 결과는 위의 것과 동일하다.

 

DELETE dbo.dept
  FROM dbo.dept a
  JOIN dbo.emp b
    ON a.deptno = b.deptno
 WHERE b.ename = 'SCOTT'

 

 

조인 영역의 FROM 절에 삭제할 테이블이 동일하게 기술되어 있으면 삭제할 테이블과 조인하지 않아도 FROM 절에 기술된 dbo.dept a 테이블의 범위에 해당하는 데이터가 삭제된다. 결과는 위의 예제와 동일하다.

 

서브쿼리를 사용하여 DELETE 방법

DELETE dbo.dept
 WHERE dept.deptno IN (SELECT a.deptno
                         FROM dbo.emp a
                        WHERE a.job = 'SALESMAN')

 

WHERE 절에서 서브쿼리를 사용하여 삭제할 데이터 항목을 가져올 수 있다. 조인을 사용하지 않을 경우 WHERE 절에서 서브쿼리를 자주 사용한다. 부서(dept) 테이블에서 부서코드 "30"이 삭제된 것을 확인할 수 있다.

 

DELETE dbo.dept
 WHERE EXISTS (SELECT 1
                 FROM dbo.emp a
                WHERE a.job = 'SALESMAN'
                  AND a.deptno = dept.deptno)

 

위의 IN 연산자를 사용한 쿼리를 EXISTS 연산자로 변경한 쿼리문이다. IN 연산자와 동일한 기능을 한다.
상황에 따라서 IN 연산자보다 EXISTS 연산자를 사용할 경우 성능이 좋을 때가 있으므로 사용법을 알아두면 좋다.

EMP, DEPT 테이블 생성 스크립트.txt
0.00MB

 

 

[MSSQL] MERGE 문 (UPDATE와 INSERT를 한번에)

MERGE 문을 사용하면 변경할 테이블에 데이터가 존재하는지 체크하고, UPDATE, DELETE, INSERT를 한 번에 작업이 가능하다. MERGE 문을 사용하지 않을 경우 해당 조건으로 테이블을 SELECT 한 후 IF 조건을

gent.tistory.com

 

[MSSQL] INSERT 문 사용법 3가지 (데이터 입력)

SQL Server에서 데이터를 입력하기 위해서는 INSERT 문을 사용한다. SQL Server 2008부터 여러 행을 입력할 수 있는 기능이 추가되었으며, SELECT 해서 INSERT 하는 방법으로도 여러 건의 데이터를 입력할 수

gent.tistory.com

 

[MSSQL] UPDATE 문 사용법 3가지 (데이터 수정)

SQL Server에서 테이블이 데이터를 수정하기 위해서는 UPDATE 문을 사용하면 된다. SQL Server에서는 UPDATE 문에서 FROM 절을 사용할 수 있어서 다른 테이블과 조인을 하여 업데이트를 할 수 있다. 조인을

gent.tistory.com

 

댓글

Designed by JB FACTORY