> 데이터 베이스 > MySQL 튜토리얼 > 삭제 명령문 mysql

삭제 명령문 mysql

PHPz
풀어 주다: 2023-05-11 22:07:38
원래의
1244명이 탐색했습니다.

MySQL에서 삭제문은 데이터베이스에서 레코드를 삭제하는 데 사용되는 명령입니다. 데이터베이스에서 불필요한 기록을 정리하여 데이터를 보다 효과적으로 관리하는 데 도움이 될 수 있습니다. MySQL의 삭제 문은 매우 유연하며 다양한 구문과 옵션을 사용하여 다양한 삭제 작업을 완료할 수 있습니다. 이 문서에서는 이러한 옵션과 삭제 문을 올바르게 사용하는 방법을 자세히 살펴보겠습니다.

기본 구문

MySQL의 삭제 문의 기본 구문은 다음과 같습니다.

DELETE FROM table_name WHERE condition;
로그인 후 복사

위치:

  • table_name은 데이터를 삭제할 테이블의 이름을 지정합니다. table_name 指定要删除数据的表名。
  • condition 是一个可选的参数,用于指定要删除的记录。如果省略此参数,则将删除表中所有记录。

示例:

假设我们有一个名为“students”的表,包含如下数据:

idnameagegender
1Alice20Female
2Bob22Male
3Cindy18Female
4David21Male

要删除这个表中所有年龄小于20岁的学生记录,可以使用以下命令:

DELETE FROM students WHERE age < 20;
로그인 후 복사

执行删除操作后,该表的内容将变为:

idnameagegender
1Alice20Female
2Bob22Male
4David21Male

使用TRUNCATE语句快速删除表中所有数据

在某些情况下,我们可能需要快速清空一个表中的所有数据,而不是仅删除一部分。为此,MySQL提供了一个称为TRUNCATE的语句,可以在一次操作中完全删除表中的所有数据。TRUNCATE比DELETE语句更快,因为它可以直接删除表中的数据,而不需要记录日志,因此也不需要回滚。

TRUNCATE语句的语法如下所示:

TRUNCATE table_name;
로그인 후 복사

示例:

要快速清空前面提到的“students”表中的所有数据,可以使用以下命令:

TRUNCATE students;
로그인 후 복사

执行后,该表将不再包含任何数据。

使用LIMIT语句控制删除的行数

在删除数据时,有时我们只想删除表中的一定数量的行,而不是全部删除。这个时候就可以使用LIMIT语句来指定要删除的行数。LIMIT语句与SELECT语句类似,可以将其添加到DELETE语句中,以控制删除的行数。

LIMIT语句的语法如下所示:

DELETE FROM table_name WHERE condition LIMIT number;
로그인 후 복사

其中:

  • table_namecondition 与前面介绍的一样。
  • number
  • condition은 삭제할 레코드를 지정하는 데 사용되는 선택적 매개변수입니다. 이 매개변수를 생략하면 테이블의 모든 레코드가 삭제됩니다.

예:

다음과 같은 데이터가 포함된 "students"라는 테이블이 있다고 가정해 보겠습니다. 앨리스Bob221821To 이 테이블에서 20세 미만의 모든 학생 기록을 삭제하려면 다음 명령을 사용할 수 있습니다. 삭제 작업을 수행한 후 테이블의 내용은 다음과 같습니다: 성별20
20 여성2
남성3Cindy
여성 4 David
남성
DELETE FROM orders ORDER BY amount DESC LIMIT 3;
로그인 후 복사
idnameage
1앨리스
여성

2BobDavid21 TRUNCATE 문을 사용하여 테이블의 모든 데이터를 빠르게 삭제하세요. 어떤 경우에는 테이블의 일부만 삭제하는 대신 테이블의 모든 데이터를 빠르게 지워야 할 수도 있습니다. 이를 위해 MySQL은 한 번의 작업으로 테이블의 모든 데이터를 완전히 삭제할 수 있는 TRUNCATE라는 문을 제공합니다. TRUNCATE는 로깅 없이 테이블의 데이터를 직접 삭제하므로 롤백이 필요하지 않기 때문에 DELETE 문보다 빠릅니다. TRUNCATE 문의 구문은 다음과 같습니다. 예: 앞서 언급한 "students" 테이블의 모든 데이터를 빠르게 지우려면 다음 명령을 사용할 수 있습니다. LIMIT 문을 사용하여 삭제되는 행 수를 제어하세요데이터를 삭제할 때 테이블에서 전체 행을 삭제하는 대신 특정 수의 행만 삭제하고 싶을 때가 있습니다. 이때 LIMIT 문을 이용하여 삭제할 행 개수를 지정할 수 있다. LIMIT 문은 SELECT 문과 유사하며 삭제되는 행 수를 제어하기 위해 DELETE 문에 추가될 수 있습니다.

LIMIT 문의 구문은 다음과 같습니다.

rrreee

여기서:

table_namecondition은 이전에 소개한 것과 동일합니다.

number는 삭제할 행 수를 지정합니다.

예:

다음과 같은 데이터가 포함된 "orders"라는 테이블이 있다고 가정합니다.

2020-01-01

🎜앨리스🎜🎜100🎜🎜🎜🎜2🎜🎜2020-01-02🎜🎜Bob🎜🎜200🎜🎜🎜🎜3🎜🎜2020-01-03🎜 🎜C 인디🎜🎜150🎜🎜🎜🎜4 🎜🎜2020 -01-04 0david🎜🎜300🎜🎜🎜🎜300🎜🎜🎜🎜5🎜🎜22020-01-05 elizabeth🎜🎜250🎜🎜🎜🎜🎜 "주문"테이블에서 가장 높은 금액을 가진 세 가지 주문을 삭제합니다. 다음 명령을 사용할 수 있습니다: 🎜rrreee🎜실행 후 테이블은 다음과 같습니다: 🎜🎜🎜🎜🎜id🎜🎜order_date🎜🎜customer🎜🎜amount🎜🎜🎜🎜🎜🎜1🎜🎜2020-01-01 🎜🎜앨리스🎜 🎜100🎜🎜🎜🎜3🎜🎜2020-01-03🎜🎜Cindy🎜🎜150🎜🎜🎜🎜🎜CASCADE 옵션을 사용하여 하위 테이블 레코드 삭제🎜🎜MySQL에서는 외래 키를 사용하여 관계형 데이터베이스 간의 연결을 설정하는 경우가 많습니다. 외래 키를 사용하면 테이블 간 연결을 설정하여 테이블 간 공동 쿼리 및 삭제를 구현할 수 있습니다. 한 테이블의 특정 레코드를 삭제하고 관련된 다른 테이블의 관련 레코드도 삭제해야 하는 경우 CASCADE 옵션을 사용할 수 있습니다. 🎜🎜CASCADE 옵션은 MySQL에서 일반적으로 사용되는 계단식 삭제 작업입니다. 지정된 테이블의 레코드와 관련된 다른 테이블을 자동으로 찾아 해당 테이블의 모든 관련 레코드를 삭제합니다. CASCADE 옵션은 삭제 작업을 수행할 때 수행해야 하는 작업을 지정하기 위해 외래 키와 조합해서만 사용할 수 있습니다. 🎜🎜다음 테이블 구조의 경우: 🎜rrreee🎜"고객" 테이블에서 ID가 3인 레코드와 관련 "주문" 테이블의 모든 레코드를 삭제하려면 다음 명령을 사용할 수 있습니다. 🎜rrreee🎜삭제 작업은 ID 3 고객 기록으로 기록을 삭제하고 관련된 모든 주문 기록을 자동으로 삭제합니다. 🎜🎜요약🎜🎜위에서 언급했듯이 MySQL의 delete 문을 사용하면 데이터베이스의 레코드를 쉽게 삭제할 수 있습니다. 삭제 문의 기본 구문에는 DELETE, TRUNCATE 및 LIMIT 문이 포함됩니다. 이러한 옵션을 유연하게 사용하면 데이터 작업을 빠르고 안전하게 처리할 수 있습니다. 참고: 삭제 문을 사용할 때 중요한 데이터를 실수로 삭제하거나 손실하지 않도록 조건과 옵션을 주의 깊게 확인하세요. 🎜

위 내용은 삭제 명령문 mysql의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

CREATE TABLE orders (
  id INT PRIMARY KEY,
  customer_id INT,
  order_date DATE,
  amount DECIMAL(10, 2),
  FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE CASCADE
);
로그인 후 복사
DELETE FROM customers WHERE id = 3;
로그인 후 복사
실행 후 테이블은 더 이상 데이터가 포함되어 있지 않습니다.