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