SQL 기초] 테이블 삭제(drop table, truncate table)

2017.03.01 22:22



테이블에 저장된 데이터를 포함해서 테이블 전체를 삭제하려면 drop 명령어를 사용한다. 


DROP TABLE 테이블명;



1
2
3
 SCOTT @ ORACLE > DROP TABLE test01;
 
테이블이 삭제되었습니다.
cs




테이블 정의는 그대로 두고 입력되어 있는 데이터만 삭제할 경우는 delete 명령어를 사용한다. where절을 사용해서 조건에 해당하는 데이터만 삭제할 수도 있고 where절 없이 사용하면 전체 데이터를 삭제한다. 


DELETE FROM 테이블명 [WHERE 조건절];



1
2
3
4
5
6
7
8
 SCOTT @ ORACLE > DELETE FROM test01 WHERE NO=4;
 
1 행이 삭제되었습니다.
 
 
 SCOTT @ ORACLE > DELETE FROM test01;
 
3 행이 삭제되었습니다.
cs




delete 명령어는 삭제할 행이 많을 경우 처리속도가 늦어질 수 있다. 그래서 where 조건절 없이 모든 행을 삭제할 경우는 truncate table 명령어를 사용한다. 


TRUNCATE TABLE 테이블명;


1
2
3
4
5
6
7
 SCOTT @ ORACLE > TRUNCATE TABLE test01;
 
테이블이 잘렸습니다.
 
 SCOTT @ ORACLE > SELECT * FROM test01;
 
선택된 레코드가 없습니다.
cs


delete와 truncate의 공통점은

테이블 정보는 그냥 두고 데이터만 삭제한다는 점이고, 


delete와 truncate의 차이점은 delete는 데이터만 지워질 뿐 디스크상의 공간은 그대로 가지고 있고, truncate는 최초 테이블이 만들어진 상태, 즉 데이터는 하나도 없이 칼럼만 남겨져있는 상태로 돌아간다(디스크 용량도 줄어들고 인덱스 등도 모두 삭제)


truncate 명령어는 자동으로 커밋을 실행하기 때문에 롤백으로 데이터를 복구할 수 없다.

또루아빠 SQL(오라클,mysql) , , , , , ,