안녕하세요. SQLER의 코난 김대우입니다. 
이번 강좌에서는, 3-3. DELETE를 이용한 로우 삭제를 진행 하겠습니다.


SQLER에서 진행되는, 챗GPT와 함께 배우는 SQL Server 강좌 목록

 

 

 

TL;DR

DELETE 구문으로 로우 데이터를 삭제합니다. FROM 절의 테이블 이름, WHERE 절로 삭제할 로우를 필터링합니다. 

 

 

DELETE 구문 예제

이번에 진행할 내용은 DELETE를 사용한 로우 삭제입니다. UPDATE보다 더 단순합니다. 먼저, 예제를 확인합니다.

 

-- ProductDescriptionID가 3인 로우 조회
SELECT * FROM Production.ProductReview
WHERE ProductReviewID = 3;
GO

-- ProductDescriptionID가 3인 로우를 삭제
DELETE FROM Production.ProductReview
WHERE ProductReviewID = 3;
GO

-- ProductDescriptionID가 3인 로우 조회
SELECT * FROM Production.ProductReview
WHERE ProductReviewID = 3;
GO

 

DELETE 구문은 이렇게 FROM 절 뒤에 테이블명, WHERE 절로 삭제할 로우를 필터링해 수행합니다.
가끔 테이블 전체의 데이터를 지워야 할 경우가 있습니다. 다음 DELETE 쿼리로 테이블의 전체 데이터를 삭제할 수 있습니다.

DELETE FROM 테이블명


이렇게 WHERE절을 지정하지 않으면 됩니다.


또 다른 방법은 바로 다음 강좌에서 배울 TRUNCATE TABLE 구문을 사용하는 방법도 있습니다. 두 방식에는 몇 가지 차이가 있는데요, 다음 강좌에서 상세하게 소개해 드리겠습니다.

 

테이블 조회 결과셋을 참조해 삭제

UPDATE와 마찬가지로, 테이블의 결과셋을 참조해 삭제하는 방식도 자주 사용됩니다.

 

-- 제품 리뷰 테이블에서 점수가 5점 미만인 리뷰만 조회
SELECT ProductReviewID, Rating, Comments FROM Production.ProductReview
WHERE RATING < 5;
GO

-- 점수가 5점 미만인 리뷰의 ProductReviewID를 참조해 DELETE 수행
DELETE FROM Production.ProductReview
WHERE ProductReviewID IN
  (
    SELECT ProductReviewID 
    FROM Production.ProductReview
    WHERE RATING < 5
  );
GO

-- 로우 삭제 확인
SELECT ProductReviewID, Rating, Comments FROM Production.ProductReview
WHERE RATING < 5;
GO

 

DELETE 구문 정보

테이블로부터 하나 이상의 로우를 삭제

DELETE [FROM] table_name [WHERE search_conditions]

 

WHERE
- 삭제할 로우를 결정한다.
- 생략할 경우 모든 행을 삭제한다.


FROM
- 다른 테이블의 데이터를 참조해 삭제할 로우를 선택할 수도 있다.
- 하위 쿼리(Subquery)를 사용하는 것과 같은 역할을 한다.

 

 

SQL 강좌 책 구매

강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다. 

 

책구매 링크: 챗GPT와 함께하는 마이크로소프트 SQL Server 2022 

책구매링크.png

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 2918
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 1926
2254 SQL강좌: 6-2. 데이터 무결성 - 테이블 컬럼과 NULL 제약 코난(김대우) 2023.08.18 11
2253 SQL강좌: 6-1. 데이터 무결성 - 데이터 무결성 이해 file 코난(김대우) 2023.08.18 15
2252 SQL강좌: 5-4. 테이블 수정 file 코난(김대우) 2023.08.18 23
2251 SQL강좌: 5-3. 테이블 생성 file 코난(김대우) 2023.08.18 11
2250 SQL강좌: 5-2. 테이블 생성과 데이터형 선택 [1] 코난(김대우) 2023.08.18 7
2249 SQL강좌: 5-1. SQL Server 테이블 file 코난(김대우) 2023.08.18 14
2248 SQL강좌: 4-8. 시스템 카탈로그 엿보기 file 코난(김대우) 2023.08.18 12
2247 SQL강좌: 4-7. 최적의 데이터베이스 구성 file 코난(김대우) 2023.08.18 26
2246 SQL강좌: 4-6. 데이터베이스의 데이터와 로그 코난(김대우) 2023.08.18 6
2245 SQL강좌: 4-5. 데이터베이스 삭제 file 코난(김대우) 2023.08.18 13
2244 SQL강좌: 4-4. 데이터베이스 옵션 file 코난(김대우) 2023.08.18 21
2243 SQL강좌: 4-3. 데이터베이스 크기조절 file 코난(김대우) 2023.08.18 19
2242 SQL강좌: 4-2. 데이터베이스 생성 file 코난(김대우) 2023.08.18 16
2241 SQL강좌: 4-1. SQL Server 데이터베이스와 데이터베이스 개체의 이해 file 코난(김대우) 2023.08.18 30
2240 SQL강좌: 3-4. TRUNCATE TABLE / 트랜잭션 수행 [1] 코난(김대우) 2023.08.18 18
» SQL강좌: 3-3. DELETE를 이용한 로우 삭제 코난(김대우) 2023.08.18 12
2238 SQL강좌: 3-2. UPDATE - 데이터 수정 코난(김대우) 2023.08.18 9
2237 SQL강좌: 3-1. 데이터 삽입, 삭제, 수정 - INSERT를 이용한 행 삽입 코난(김대우) 2023.08.18 13
2236 SQL강좌: 2-14. SQL 쿼리 자동생성 - 쿼리 디자이너 file 코난(김대우) 2023.08.18 20
2235 SQL강좌: 2-13. SELECT 결과셋을 XML, JSON 형식으로 출력 코난(김대우) 2023.08.18 20





XE Login