MySQL 삭제 방법에 대한 간략한 분석: 삭제, 자르기, 삭제의 차이점

青灯夜游
풀어 주다: 2022-06-08 13:49:18
앞으로
2430명이 탐색했습니다.

MySQL 삭제 방법에 대한 간략한 분석: 삭제, 자르기, 삭제의 차이점

MySQL에는 delete, truncate, drop 총 3가지 삭제 방법이 있는데, 세 가지의 사용법과 사용 시나리오가 전혀 다릅니다.

1.delete

detele은 테이블의 일부 또는 전체 데이터를 삭제하는 데 사용할 수 있습니다. 사용 구문은 다음과 같습니다.

delete from table_name [where...] [order by...] [limit...]
로그인 후 복사

PS: [] 안의 명령은 선택 명령이므로 생략할 수 있습니다.

학생 테이블에서 수학 점수가 가장 높은 상위 3명의 학생을 삭제하려면 다음 SQL을 사용할 수 있습니다.

delete from student order by math desc limit 3;
로그인 후 복사

1.1 삭제 구현 원칙

InnoDB 엔진에서는 삭제 작업이 수행되지 않습니다. 실제로 데이터 삭제 대신 데이터가 삭제된 것으로 표시되고 MySQL을 비자동 제출 모드로 설정하여 이를 테스트하고 확인할 수 있습니다. 비자동 커밋 모드 설정 SQL은 다음과 같습니다.

set autocommit=0;
로그인 후 복사

이후 데이터를 먼저 삭제한 후 롤백 작업을 수행하고 마지막으로 이전에 삭제한 데이터가 아직 존재하는지 확인한다는 의미입니다. 삭제된 것은 데이터가 실제로 삭제된 것이 아니라 삭제된 것으로만 표시되는 것입니다. 검증 SQL 및 실행 결과는 아래 그림과 같습니다.

MySQL 삭제 방법에 대한 간략한 분석: 삭제, 자르기, 삭제의 차이점

1.2 자동 증가 열에 대하여

InnoDB에서 엔진, 삭제는 모두 삭제하는 데 사용됩니다. 데이터가 삭제된 후에는 자동 증가 열이 초기 값으로 재설정되지 않습니다.

MySQL 삭제 방법에 대한 간략한 분석: 삭제, 자르기, 삭제의 차이점

2.truncate

truncate 실행 효과는 다음과 같습니다. delete와 유사하며, 테이블의 모든 데이터를 삭제하는 데에도 사용됩니다. 행 데이터의 경우 사용 구문은 다음과 같습니다.

truncate [table] table_name
로그인 후 복사

사용 시 truncate와 delete의 가장 큰 차이점은 delete는 조건식을 사용하여 삭제할 수 있다는 점입니다. truncate는 조건식을 추가할 수 없으므로 모든 행 데이터만 삭제할 수 있습니다. 예를 들어 다음 truncate는 where 명령을 추가한 후 오류를 보고합니다.

MySQL 삭제 방법에 대한 간략한 분석: 삭제, 자르기, 삭제의 차이점

2.1 truncate 구현 원칙

truncate는 행 데이터만 삭제하는 것 같지만 DDL 문, 즉 데이터 정의 언어입니다. 데이터 정의 언어는 데이터를 저장하기 위한 구조적 명령을 유지하는 데 사용되므로 삭제 문은 DML에 속합니다. , 데이터를 조작하는 데 사용되는 데이터 조작 언어. truncate가 행 데이터만 삭제하고 열 데이터(필드, 인덱스 등)를 삭제하지 않는데 DDL 언어인 이유는 무엇입니까? truncate는 기본적으로 새로운 테이블 구조를 생성한 후 원본 테이블을 삭제하므로 DML 언어가 아닌 DDL 언어에 속하기 때문입니다.

2.2 자동 증가 열 재설정

truncate는 다음 명령에 표시된 대로 InnoDB 엔진의 자동 증가 열을 재설정합니다.

MySQL 삭제 방법에 대한 간략한 분석: 삭제, 자르기, 삭제의 차이점

3.drop

drop과 처음 두 테이블 삭제 명령은 행 데이터가 다릅니다. Drop은 전체 테이블의 행 데이터와 테이블 구조를 함께 삭제합니다.

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [,tbl_name]
로그인 후 복사

여기서 TEMPORARY는 임시 테이블을 의미합니다. 무시되었습니다.

drop의 사용 예는 다음과 같습니다.

MySQL 삭제 방법에 대한 간략한 분석: 삭제, 자르기, 삭제의 차이점

셋의 차이점

  • 데이터 복구 측면에서: delete는 삭제된 데이터를 복구할 수 있고, truncate 및 drop은 삭제된 데이터를 복구할 수 없습니다.

  • 실행 속도: 삭제 > 자르기 >

  • 데이터 삭제 측면에서: drop은 행 데이터, 필드, 인덱스 및 기타 데이터를 포함하여 테이블 전체를 삭제하고, truncate 및 drop은 삭제 행 데이터만 삭제합니다.

  • 조건 추가 측면에서 삭제는 where 표현식을 사용하여 쿼리 조건을 추가할 수 있지만, truncate 및 drop은 where 쿼리 조건을 추가할 수 없습니다.

  • 자동 증가 열 재설정: InnoDB 엔진에서 truncate는 자동 증가 열을 재설정할 수 있지만 삭제는 자동 증가 열을 재설정할 수 없습니다.

Summary

delete 및 truncate를 사용하면 테이블의 행 데이터를 삭제할 수 있고, drop을 사용하면 테이블 전체를 삭제할 수 있습니다. 삭제된 데이터에는 모든 행 데이터, 필드, 인덱스 및 기타 데이터가 포함되며, 그중 delete는 데이터를 삭제합니다. . 은 복구할 수 있지만 잘림과 삭제는 복구할 수 없지만 실행 효율성 측면에서 후자의 두 가지 삭제 방법은 큰 장점이 있으므로 실제 시나리오에 따라 해당 삭제 명령을 선택해야 합니다. 복구할 수 없습니다. 데이터 삭제 방법을 사용할 때는 주의하세요.

【관련 추천: mysql 비디오 튜토리얼

위 내용은 MySQL 삭제 방법에 대한 간략한 분석: 삭제, 자르기, 삭제의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:juejin.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿