mysql에서는 "DELETE FROM <테이블 이름> [WHERE 절] [ORDER BY 절] [LIMIT 절]" 명령을 사용하여 단일 테이블의 데이터를 삭제할 수 있습니다. "TRUNCATE [TABLE] 테이블을 사용할 수도 있습니다. name"은 데이터 테이블의 모든 데이터를 삭제하고 테이블을 지웁니다.
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 [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 ('Java'),('MySQL'),('Python'); 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 문과 동일한 효과를 가지지만 경우에 따라 사용법에 차이가 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!