MySQL DELETE 쿼리: 테이블에서 행을 삭제하는 방법

DELETE 쿼리란 무엇입니까?

MySQL 삭제 명령은 데이터베이스 테이블에서 더 이상 필요하지 않은 행을 삭제하는 데 사용됩니다. 테이블에서 전체 행을 삭제하고 삭제된 행 수를 반환합니다. 삭제 명령은 데이터베이스에서 임시 또는 사용되지 않는 데이터를 삭제하는 데 유용합니다.

삭제 쿼리 MySQL의 단일 쿼리로 테이블에서 둘 이상의 행을 삭제할 수 있습니다. 이는 데이터베이스 테이블에서 많은 수의 행을 제거할 때 이점이 있는 것으로 입증되었습니다.

MySQL 행의 삭제 행이 삭제되면 복구할 수 없습니다. 따라서 데이터베이스에서 데이터를 삭제하기 전에 데이터베이스 백업을 만드는 것이 좋습니다. 이를 통해 데이터베이스를 복원하고 나중에 필요한 경우 데이터를 볼 수 있습니다.

MySQL에서 행을 삭제하는 방법

MySQL에서 행을 삭제하려면 DELETE FROM 문을 사용합니다.

DELETE FROM `table_name` [WHERE condition];

여기를 클릭하십시오.

  • DELETE FROM `table_name`은 MySQL 서버에 테이블에서 행을 제거하도록 지시합니다.
  • [WHERE 조건]은 선택 사항이며 DELETE 구문 MySQL 행 쿼리의 영향을 받는 행 수를 제한하는 필터를 넣는 데 사용됩니다.

경우 WHERE 절 에서는 사용되지 않습니다. MySQL 삭제 쿼리, 그러면 해당 테이블의 모든 행이 삭제됩니다.

MySQL 삭제 쿼리의 예

SQL DELETE 문에 대해 더 자세히 논의하기 전에 작업할 영화 테이블에 몇 가지 샘플 데이터를 삽입해 보겠습니다.

INSERT INTO  `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 7);
INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8);
INSERT INTO  movies (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);

위 스크립트를 실행하면 영화 테이블에 3개의 영화가 추가됩니다. 수업을 더 진행하기 전에 테이블에 모든 영화를 가져와 보겠습니다. 아래에 표시된 스크립트가 이를 수행합니다.

SELECT * FROM `movies`;

위 스크립트를 실행하면 다음과 같은 결과가 나옵니다.wing 결과.

movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
18 The Great Dictator Chalie Chaplie 1920 7
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

Myflix 비디오 라이브러리가 더 이상 "The Great Dictator"를 회원들에게 대여하지 않고 데이터베이스에서 제거하기를 원한다고 가정해 보겠습니다. 영화 ID는 18입니다. 아래 표시된 스크립트를 사용하여 MySQL 예제 테이블에서 행을 삭제할 수 있습니다.

DELETE FROM `movies` WHERE `movie_id` = 18;

위 스크립트를 실행하면 MySQL 워크벤치 Myflix에 대해 데이터베이스 테이블에서 ID가 18인 영화를 삭제합니다.

영화 테이블의 현재 상태를 살펴보겠습니다.

SELECT * FROM `movies`;
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

알림:

  • ID가 18인 영화가 쿼리 결과 집합에 반환되지 않았습니다.
  • 테이블의 단일 열을 삭제할 수 없습니다. 전체 행을 삭제할 수 있습니다.

삭제하려는 영화 목록이 있다고 가정해 보겠습니다. IN과 함께 WHERE 절을 사용할 수 있습니다.

DELETE FROM `movies` WHERE `movie_id`  IN (20,21);

위 스크립트를 실행하면 영화 테이블에서 ID가 20과 21인 영화가 삭제됩니다.

요약

  • MySQL의 삭제 명령은 테이블에서 더 이상 필요하지 않은 데이터를 제거하는 데 사용됩니다.
  • “WHERE 절”은 DELETE 쿼리 MySQL 명령의 영향을 받는 행 수를 제한하는 데 사용됩니다.
  • 한번 삭제된 데이터는 복구가 불가능하므로, 데이터 삭제 전 반드시 백업을 해두실 것을 권장합니다.