SQL DELETE 구문

IT 위키

SQL의 DELETE 구문은 테이블에서 특정 조건에 해당하는 데이터를 삭제할 때 사용하는 명령어이다. 전체 행을 제거하거나 WHERE 절을 통해 특정 행만 선택적으로 삭제할 수 있다.

기본 문법[편집 | 원본 편집]

DELETE FROM 테이블명
[WHERE 조건];
  • WHERE 절을 생략하면 테이블의 모든 행이 삭제되며, 테이블 구조는 남는다.

예시 테이블[편집 | 원본 편집]

employees 테이블이 다음과 같다고 가정한다.

id name department salary
1 Alice IT 6000
2 Bob HR 4000
3 Carol IT 7000
4 Dave Sales 4500

조건부 삭제[편집 | 원본 편집]

1. 특정 부서 직원 삭제[편집 | 원본 편집]

DELETE FROM employees
WHERE department = 'HR';

→ Bob이 삭제됨

id name department salary
1 Alice IT 6000
3 Carol IT 7000
4 Dave Sales 4500

기본 키 기준 삭제[편집 | 원본 편집]

2. ID가 4인 직원 삭제[편집 | 원본 편집]

DELETE FROM employees
WHERE id = 4;

→ Dave가 삭제됨

전체 삭제[편집 | 원본 편집]

3. 테이블의 모든 데이터를 삭제[편집 | 원본 편집]

DELETE FROM employees;

→ 모든 행 삭제, 하지만 테이블 구조는 그대로 유지

테이블 자체 제거와의 비교[편집 | 원본 편집]

  • DELETE: 데이터만 삭제, 테이블 구조 유지
  • TRUNCATE: 데이터 전부 삭제, 롤백 불가능 (DBMS에 따라 다름)
  • DROP: 테이블 전체 제거 (구조 + 데이터)

주의 사항[편집 | 원본 편집]

  • WHERE 절을 빠뜨리면 의도치 않게 전체 데이터가 삭제될 수 있음
  • DELETE는 트랜잭션 처리 가능 → ROLLBACK으로 복원 가능
  • 외래 키 제약 조건(FK)에 의해 삭제가 차단되거나 CASCADE 삭제 발생 가능

같이 보기[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]

  • Melton, J., & Simon, A. R. (2002). SQL: 1999 – Understanding Relational Language Components. Morgan Kaufmann.
  • MySQL Reference Manual
  • PostgreSQL Documentation
  • Oracle SQL Language Reference