mysql 명령을 사용하여 데이터를 삭제하는 방법은 무엇입니까?

青灯夜游
풀어 주다: 2020-10-05 16:00:06
원래의
11776명이 탐색했습니다.

mysql에서는 "DELETE FROM <테이블 이름> [WHERE 절] [ORDER BY 절] [LIMIT 절]" 명령을 사용하여 단일 테이블의 데이터를 삭제할 수 있습니다. "TRUNCATE [TABLE] 테이블을 사용할 수도 있습니다. name"은 데이터 테이블의 모든 데이터를 삭제하고 테이블을 지웁니다.

mysql 명령을 사용하여 데이터를 삭제하는 방법은 무엇입니까?

DELETE 문을 사용하여 단일 테이블의 데이터 삭제

MySQL에서는 DELETE 문을 사용하여 테이블에서 하나 이상의 데이터 행을 삭제할 수 있습니다.

구문 형식은

DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
로그인 후 복사

구문 설명은 다음과 같습니다.

  • <테이블 이름>: 데이터를 삭제할 테이블 이름을 지정합니다.

  • ORDER BY 절: 선택사항. 삭제할 때 테이블의 행이 절에 지정된 순서대로 삭제됨을 나타냅니다.

  • WHERE 절: 선택 사항입니다. 삭제 작업 시 삭제 조건이 제한됨을 나타냅니다. 이 절을 생략하면 테이블의 모든 행이 삭제됩니다.

  • LIMIT 절: 선택 사항. 제어 명령이 클라이언트에 반환되기 전에 삭제할 최대 행 수를 서버에 알리는 데 사용됩니다.

참고: WHERE 조건을 사용하지 않으면 모든 데이터가 삭제됩니다.

예: 테이블의 모든 데이터 삭제

tb_courses_new 테이블의 모든 데이터 삭제 입력된 SQL 문과 실행 결과는 다음과 같습니다.

mysql> DELETE FROM tb_courses_new;
Query OK, 3 rows affected (0.12 sec)
mysql> SELECT * FROM tb_courses_new;
Empty set (0.00 sec)
로그인 후 복사

데이터 테이블의 데이터를 삭제하려면 TRUNCATE 문을 사용하세요.

TRUNCATE 키워드는 테이블을 완전히 삭제하는 데 사용됩니다. 구문 형식은 다음과 같습니다.

TRUNCATE [TABLE] 表名
로그인 후 복사

이 중 TABLE 키워드는 생략 가능합니다.

Example

새 테이블 tb_student_course를 생성하고 데이터를 삽입하고 쿼리하면 SQL 문 및 실행 결과는 다음과 같습니다.

mysql> CREATE TABLE `tb_student_course` (
    -> `id` int(4) NOT NULL AUTO_INCREMENT,
    -> `name` varchar(25) NOT NULL,
    -> PRIMARY KEY (`id`)
    -> );
Query OK, 0 rows affected (0.04 sec)
mysql> INSERT INTO tb_student_course(name) VALUES (&#39;Java&#39;),(&#39;MySQL&#39;),(&#39;Python&#39;);
Query OK, 3 rows affected (0.05 sec)
Records: 3  Duplicates: 0  Warnings: 0
mysql> SELECT * FROM tb_student_course;
+----+--------+
| id | name   |
+----+--------+
|  1 | Java   |
|  2 | MySQL  |
|  3 | Python |
+----+--------+
3 rows in set (0.00 sec)
로그인 후 복사

TRUNCATE 문을 사용하여 tb_student_course 테이블의 레코드, SQL 문 및 실행 결과를 삭제합니다.

mysql> TRUNCATE TABLE tb_student_course;
Query OK, 0 rows affected (0.04 sec)

mysql> SELECT * FROM tb_student_course;
Empty set (0.00 sec)
로그인 후 복사

TRUNCATE와 DELETE의 차이점

논리적으로 TRUNCATE 문은 DELETE 문과 동일한 효과를 가지지만 경우에 따라 사용법에 차이가 있습니다.

  • DELETE는 DML 유형 문이고, TRUNCATE는 DDL 유형 문입니다. 둘 다 테이블의 데이터를 지우는 데 사용됩니다.

  • DELETE는 레코드를 행 단위로 삭제하고, TRUNCATE는 테이블의 데이터를 행 단위로 삭제하는 대신 원본 테이블을 직접 삭제하고 동일한 새 테이블을 다시 생성하며 DELETE보다 빠르게 데이터를 실행합니다. 따라서 테이블의 모든 데이터 행을 삭제해야 하는 경우 TRUNCATE 문을 사용하여 실행 시간을 단축해 보세요.

  • DELETE 데이터 삭제 후 이벤트 롤백을 통해 데이터를 검색할 수 있으며, TRUNCATE는 트랜잭션 롤백을 지원하지 않으며 삭제 후에는 데이터를 검색할 수 없습니다.

  • DELETE 데이터를 삭제한 후 시스템은 자동 증가 필드의 카운터를 재설정하지 않습니다. TRUNCATE가 테이블 레코드를 지운 후에 시스템은 자동 증가 필드의 카운터를 재설정합니다.

  • DELETE는 WHERE 절을 통해 조건을 지정하여 데이터의 일부를 삭제할 수 있기 때문에 사용 범위가 더 넓습니다. 반면 TRUNCATE는 WHERE 절을 지원하지 않고 전체만 삭제할 수 있습니다.

  • DELETE는 삭제된 데이터가 있는 행 수를 반환하지만 TRUNCATE는 0만 반환하므로 의미가 없습니다.

요약

테이블이 필요하지 않은 경우에는 DROP을 사용하고, 모든 레코드를 삭제하려면 TRUNCATE를 사용하고, 일부 레코드를 삭제하려면 DELETE를 사용하세요.

추천 튜토리얼: mysql 비디오 튜토리얼

위 내용은 mysql 명령을 사용하여 데이터를 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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