본문 바로가기
my_lesson/_SQL

SQL - DELETE

by boolean 2016. 2. 25.
728x90
alter table [table_name] auto_increment = 1;

SQL DELETE 문 사용

SQL DELETE문은 테이블에서 행을 삭제할 때 사용한다. 

SQL DELETE Syntax

DELETE FROM table_name
WHERE some_column=some_value;

주의! 만약 WHERE문을 생략한다면 모든 레코드들이 지워질 수도 있다. 

 

DELETE FROM Customers
WHERE CustomerName='Alfreds Futterkiste' AND ContactName='Maria Anders';

 

(해석) Customers테이블에서 CustomerName이 'Alfreds Futterkiste' 이면서 ContactName='Maria Anders'인 행을 지워라.

 

만약 모든 레코드들을 지우고 싶다면

 

DELETE FROM table_name;

or

DELETE * FROM table_name;

 

행을 삭제하고 나서 해야 할 일은 auto_increment 값을 재 조정 해주는 것이다

그렇지 안으면 최근 자료의 마지막 키값부터 이어서 시작한다.

 

auto_increment 속성 1부터 시작하게 초기화하기 (데이터가 없을 경우)

alter table [table_name] auto_increment = 1;

auto_increment 속성 1부터 시작하게 초기화하기 (데이터가 있을 경우)

table_name 양옆의 기호는 `(grave) 이다.

set @count = 0;

update `[table_name]` set [auto_increment_column_name] = @count:=@count+1;

 

 

mysql 여러 튜플 삭제



delete from ABCDE where no='3'
'ABCDE' 테이블에서 'no' 컬럼값이 '3' 인 레코드를 전부 삭제한다.

 
delete from ABCDE where no>3
'ABCDE' 테이블에서 'no' 컬럼값이 '3' 보다 큰 레코드를 전부 삭제한다.

 
delete from ABCDE where no<>3
'ABCDE' 테이블에서 'no' 컬럼값이 '3' 이 '아닌' 레코드를 전부 삭제한다.

  
delete from ABCDE where wdate>32015467 order by no limit 30
'ABCDE' 테이블에서 'wdate' 컬럼값이 '32015467' 보다 큰 레코드를 'no' 컬럼값을 기준으로
정렬시켜서 상위 30 개를 삭제한다.

 
delete from ABCDE where tbody like '%무료동영상%'
'ABCDE' 테이블에서 'tbody' 컬럼값에 '무료동영상' 이란 단어가 포함된 레코드를 전부 삭제한다.


delete from ABCDE where tbody like '%무료동영상%' or subject like '%광고%'
'ABCDE' 테이블에서 'tbody' 컬럼값에 '무료동영상' 이란 단어가 포함되어 있거나
'subject' 컬럼값에 '광고' 라는 단어가 포함된 레코드를 전부 삭제한다.

'my_lesson > _SQL' 카테고리의 다른 글

SQL - INSERT INTO  (0) 2016.02.25
SQL - UPDATE  (1) 2016.02.25
SQL - Injection  (0) 2016.02.25
SQL - LIKE  (0) 2016.02.25
SQL - IN  (0) 2016.02.25

댓글