728x90
반응형
SMALL
1. DROP
DROP TABLE 테이블명;
- 데이터베이스에서 테이블 정의 및 해당 테이블에 대한 모든 데이터, 인덱스, 트리거, 제약 조건 및 권한을 제거
- DROP은 DDL(데이터 정의 언어) 명령
- DROP 명령은 데이터베이스에서 테이블을 제거
- 테이블의 행, 인덱스 및 권한도 제거
- 테이블의 행이 제거될때, DML(ROLLBACK, COMMIT) 트리거가 실행되지 않음
- ROLLBACK(실행 취소) 불가능
2. TRUNCATE
TRUNCATE TABLE 테이블명;
- 개별적으로 행을 삭제할 수 없으며, 테이블 내부의 모든 행을 삭제
- TRUNCATE는 DDL(데이터 정의 언어) 명령
- TRUNCATE는 테이블 잠금을 사용하여 실행되지만, 각 행은 잠기지 않음
- TRUNCATE와 WHERE 절을 함께 사용할 수 없음(개별적으로 행 삭제 불가능)
- TRUNCATE는 테이블에서 모든 행을 제거
- 트랜잭션 로그에 한 번만 기록되므로 DELETE보다 성능 면에서 더 빠름
- 인덱싱 된 VIEW(뷰)와 함께 사용할 수 없음
- 테이블에서 TRUNCATE TABLE 명령어를 사용하려면 테이블에 대한 ALTER 권한이 필요
- ROLLBACK(실행 취소) 불가능
- 테이블의 용량이 초기화됩니다.
📍 잠금(Lock) : 삽입, 삭제, 갱신 등의 트랜잭션이 수행되는 동안 특정 테이블 또는 행에 대해 CRUD 작업을 할 수 없음을 의미합니다. 즉, TRUNCATE 명령어가 수행되는 동안 해당 테이블에 다른 트랜잭션 작업을 할 수 없습니다.
3. DELETE
DELETE FROM 테이블명 [WHERE 조건];
- 테이블의 내부의 행을 모두 삭제하며, WHERE 절을 사용하여 개별적으로 행을 삭제할 수 있음
- DELETE는 DML(데이터 조작 언어) 명령
- DELETE는 행 잠금을 사용하여 실행
- DELETE는 WHERE 절과 함께 사용하여 특정 행을 삭제
- DELETE는 삭제된 각 행에 대해 트랜잭션 로그를 기록함. 따라서 TRUNCATE보다 느리다.
- DELETE 명령어를 사용하려면 테이블에 대한 DELETE 권한이 필요
- 인덱싱 된 VIEW(뷰)와 함께 사용할 수 있음
- TRUNCATE보다 더 많은 트랜잭션 공간을 사용
- ROLLBACK(실행 취소)을 할 수 있음
- 테이블의 용량은 감소하지 않음
728x90
반응형
LIST
'DataBase > MySQL' 카테고리의 다른 글
[MySQL] 인덱스(INDEX)에 대해 알아보자! 🧐 (2) | 2023.03.21 |
---|---|
[MySQL] 트랜잭션(Transaction) - COMMIT & ROLLBCK (0) | 2023.03.21 |
[MySQL] 뷰(View)에 대해 알아보자! 🧐 (0) | 2023.03.21 |
[MySQL] 사용자 및 권한 설정하기! (0) | 2023.03.21 |
[MySQL] MySQL함수 - 2️⃣문자열 함수 (0) | 2023.03.20 |