[SQL] TRUNCATE

JJinu·2022년 12월 9일
0

◽ 🤔 TRUNCATE란?

TRUNCATE FROM TABLE은 테이블에 존재하는 모든 행을 제거하는 명령어이다.
(테이블 스키마와 의존성과 제약조건들은 남기고, 모든 ROW들을 모두 삭제하는 명령어)
간단하게 말하면 WHERE절이 없는 DELETE와 동일하다.
특히 롤백이 불가능하기에, 롤백이 불필요한 경우 사용합니다.

  • DROP : 만들어졌던 테이블 전체 삭제 (존재 자체가 삭제됩니다!)

  • TRUNCATE : 테이블 안에 들어있던 모든 레코드들을 제거하는 명령어로 데이터들을 삭제한 후에 생기는 저장 공간을 재사용할 수 있도록 메모리를 헤제합니다.(table 구조를 완전히 삭제하는것은 아닙니다!) 테이블을 DROP했다가 다시 CREATE하는 것이기 때문에 모든 행을 삭제하는 데에 가장 빠르고 효율적인 방법 입니다.

  • DELETE : DELETE도 TRUNCATE처럼 테이블 구조는 남기고 안의 데이터만 삭제하지만 TRUNCATE와의 차이점으로는 TRUNCATE는 부분별삭제가 안되지만 DELETE는 WHERE 조건을 이용하여 원하는 데이터 삭제가 가능합니다.

++ 또다른 예

◽ TRUNCATE(숫자,버릴 자릿수)

TRUNCATE는 숫자함수로도 사용할 수 있습니다.

  • 숫자를 버릴 자릿수 아래로 버린다.
  • 반드시 버릴 자릿수를 명시해 주어야 함

ex) 프로그래머스 - 가격대 별 상품 개수 구하기

SELECT TRUNCATE(PRICE,-4) as PRICE_GROUP, COUNT(PRODUCT_ID) as PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP ASC
  • 결과
profile
코린이 탈출을 위한 한권의 책

0개의 댓글