SQL 삭제

wish17·2023년 7월 27일

삭제

DROP TABLE MENU ; // 완전 삭제
DROP TABLE MENU CASCADE CONSTRAINT ; // 외래키로 참조한 제약사항도 모두 삭제
// Oracle에만 있는 옵션. SQL Server에는 존재하지 않음

TRUNCATE TABLE MENU ; // 테이블 데이터만 삭제되고 구조는 살아있다.

DELETE MENU; // DELETE 에서 FROM 생략 가능
DELETE FROM MENU (WHERE name = ‘연어스시’) ;

DELETE

  • 이 명령은 테이블의 특정 레코드(행)을 제거한다.
  • WHERE 절을 사용하여 삭제할 레코드를 지정할 수 있다.
  • DELETE는 각 레코드를 개별적으로 처리하므로 실행이 비교적 느리며, 트랜잭션 로그에 기록되며, ROLLBACK이 가능하다.
DELETE FROM employees WHERE employee_id = 100;

TRUNCATE

  • 테이블 초기화 명령어
  • 테이블의 모든 레코드를 한 번에 제거한다.
  • WHERE 절을 사용할 수 없으며, TRUNCATE는 테이블의 데이터만 삭제하고 테이블 구조는 그대로 유지한다.
  • TRUNCATE는 빠르게 실행되지만, 기본적으로 트랜잭션 로그에 기록되지 않고, ROLLBACK이 불가능하다. (이는 DBMS에 따라 다를 수 있음)
TRUNCATE TABLE employees;

DROP

  • 테이블 자체를 완전히 제거한다.
  • 테이블의 데이터뿐만 아니라 구조(스키마), 인덱스, 트리거, 제약 조건 등도 모두 삭제한다.
  • DROP 명령은 ROLLBACK이 불가능하다.
DROP TABLE employees;

0개의 댓글