728x90
반응형
MSSQL의 데이터 삭제 기능인 DELETE문에 대한 사용법과 부가적인 팁에 대한 글입니다.
DELETE란?
데이터베이스 테이블 내 데이터를 삭제하는 명령어입니다.
가장 기본적인 문법 중 하나입니다.
삭제이기 때문에 신중히 사용해야 합니다.
DELETE문 사용법
기본 사용법
|
--//문법 |
|
DELETE 삭제대상 테이블 (WHERE 대상행 조건) |
|
|
|
--//예제 |
|
DELETE TARGET_TABLE --// TARGET_TABLE 모든 데이터 삭제 |
|
|
|
DELETE TARGET_TALBE WHERE IDX = 10 --// TARGET_TABLE에서 IDX = 10인 ROW 삭제 |
모든 데이터를 삭제하는 경우는 거의 없기 때문에 DELETE문 역시 WHERE 절을 지원합니다.
WHERE절에 조건을 입력해 지우려는 행을 특정하여 지우시면 되겠습니다.
DELETE FROM
데이터 삭제를 진행하면서 삭제 대상 테이블 외 다른 테이블을 참조해야 되는 경우 사용합니다.
물론 참조하지 않으면서 사용해도 무방합니다.
|
--//문법 |
|
DELETE 삭제대상 테이블 |
|
FROM 삭제대상 테이블 A |
|
INNER JOIN 참조할 테이블 B ON (B.FK = A.PK AND B.IDX = 10) |
|
|
|
--//예제 |
|
DELETE TARGET_TABLE |
|
FROM TARGET_TABLE A |
|
INNER JOIN REFER_TABLE B ON (B.FK = A.PK AND B.IDX = 10) |
|
--> REFER_TABLE의 IDX = 10 인 ROW의 FK 값이 TARGET_TABLE 의 PK 값인 데이터를 삭제합니다. |
위처럼 TARGET_TABLE에 데이터를 삭제하기 위해 REFER_TABLE의 참조가 필요한 경우
FROM과 JOIN으로 연결하여 삭제를 진행합니다.
삭제 대상 테이블을 ALIAS로 사용하면 가독성 좋게 사용할 수 있습니다.
|
DELETE A |
|
FROM TARGET_TABLE A |
|
INNER JOIN REFER_TABLE B ON (B.FK = A.PK AND B.IDX = 10) |
안전하게 DELETE 하기
DELETE문은 정말 신중해야 합니다. (잘못 삭제하여 데이터가 엎어지면.. 정말 큰일이겠죠?)
그래서 안전한 삭제처리를 위해 제가 주로 사용하는 방법을 소개합니다.
SELECT문을 먼저 작성하여 삭제되는 데이터를 확인 후 DELETE 하는 방법입니다.
|
DELETE A |
|
--SELECT A.* |
|
FROM TARGET_TABLE A |
|
WHERE A.IDX = 10 |
SELECT 문을 먼저 작성한 뒤 조회해 보고 삭제하려는 데이터가 맞다면
SELECT라인 주석 처리하고 DELETE문을 상단에 작성하여 실행합니다.
DELETE 하기 전 언제라도 SELECT 라인부터 드래그하여 수정될 데이터를 확인할 수 있습니다.
이상 MSSQL DELETE문에 대한 글이었습니다.
도움 되셨다면 공감 부탁드립니다.
728x90
반응형
'IT > SQLD' 카테고리의 다른 글
[SQL] (NOT)EXISTS 와 (NOT)IN 비교하기 (0) | 2023.10.22 |
---|---|
WHERE : 단일 조건식 지정 (0) | 2023.10.22 |
[ANSI SQL] 7. WHERE 절의 조합(AND / OR / NOT / IN) (0) | 2023.10.22 |
[SQL] where절: 부정연산자( 같지 않다 !=, ^=, <>, NOT) (0) | 2023.10.22 |
특정 컬럼의 값 제외하고 모두 삭제 (0) | 2023.10.22 |