MySQL - Delete Query

안녕하세요, 데이터베이스 개발자 지망생 여러분! 오늘 우리는 MySQL의 세계로 뛰어들어 중요한 연산 중 하나를 배우겠습니다: 데이터를 삭제하는 방법. 프로그래밍에 처음 도전하는 분이라면 걱정 마세요. 저는 많은 예제와 설명을 통해 단계별로 안내해 드리겠습니다. 그麼, 손을 깨끗이 해서 시작해 보겠습니다!

MySQL - Delete Query

MySQL DELETE 문

MySQL에서 DELETE 문은 테이블에서 기존 레코드를 제거하는 데 사용됩니다. 노트북에서 정보를 지우는 것과 같아요 - 지워지면 사라지죠(물론 백업이 있다면 예외입니다!).

DELETE 문의 기본 문법은 다음과 같습니다:

DELETE FROM table_name
WHERE condition;

이를 구분해 보면:

  • DELETE FROM는 MySQL에게 특정 테이블에서 데이터를 제거하려는 것을 알립니다.
  • table_name은 어떤 테이블에서 데이터를 지우는지 지정합니다.
  • WHERE 절은 선택 사항이지만 매우 중요합니다. 지울 레코드를 지정합니다. 이를 생략하면 모든 레코드가 지워집니다!

예제 1: 특정 레코드 삭제

students라는 테이블이 있고, id, name, grade 열이 있는 상태에서, id가 5인 학생을 지우려면 다음과 같이 합니다:

DELETE FROM students
WHERE id = 5;

이 쿼리는 id가 5인 행을 제거합니다. 교실 명단에서 학생의 이름을 취소하는 것과 같습니다.

예제 2: 여러 레코드 삭제

이제 failing(성적이 60점 미만)인 모든 학생을 지우려고 합시다:

DELETE FROM students
WHERE grade < 60;

이 쿼리는 grade가 60보다 작은 모든 행을 제거합니다. 성적장에서 모든 failing 성적을 한 번에 지우는 것과 같습니다.

MySQL 테이블에서 데이터 삭제

데이터를 지울 때는 조심해야 합니다. 여기 몇 가지 팁과 트릭을 알려드리겠습니다:

SELECT를 DELETE 전에 사용하기

중요한 데이터에 DELETE 쿼리를 실행하기 전에 SELECT 쿼리를 먼저 실행하는 것이 좋습니다. 이는 영향을 받을 행을 확인하는 데 도움이 됩니다. 예를 들어:

SELECT * FROM students
WHERE grade < 60;

이 쿼리는 DELETE 쿼리에 의해 지워질 모든 행을 보여줍니다. 답을 지우기 전에 수학을 두 번 확인하는 것과 같습니다.

행의 수 제한하기

때로는 특정 수의 행만 지우고 싶을 수 있습니다. MySQL은 LIMIT 절을 사용하여 이를 할 수 있습니다:

DELETE FROM students
WHERE grade < 60
LIMIT 5;

이 쿼리는 조건을 만족하는 첫 5개의 행만 지웁니다. 첫 5개의 failing 성적만 지우는 것과 같습니다.

여러 조건을 기반으로 삭제하기

WHERE 절에서 AND와 OR를 사용하여 여러 조건을 사용할 수 있습니다:

DELETE FROM students
WHERE grade < 60 AND age > 18;

이 쿼리는 failing하고 18세 이상인 학생의 레코드를 지웁니다. 할 일 목록에서 특정 항목을 필터링하는 것과 같습니다.

MySQL 클라이언트 프로그램을 사용한 Delete 쿼리

MySQL을 사용할 때는 자주 클라이언트 프로그램을 사용하여 데이터베이스와 상호작용합니다. MySQL 명령줄 클라이언트를 사용하여 데이터를 지우는 방법을 보겠습니다.

단계 1: MySQL에 연결하기

먼저 MySQL 서버에 연결해야 합니다. 터미널이나 명령 프롬프트를 엽니다:

mysql -u username -p

"username"을 실제 MySQL 사용자 이름으로 변경하세요. 비밀번호를 입력하도록 요청됩니다.

단계 2: 데이터베이스 선택하기

연결된 후, 작업할 데이터베이스를 선택합니다:

USE your_database_name;

단계 3: DELETE 쿼리 실행하기

이제 DELETE 쿼리를 실행할 수 있습니다. 이전 예제를 사용해 보겠습니다:

DELETE FROM students WHERE grade < 60;

Enter 키를 누르면 MySQL이 쿼리를 실행하고 영향을 받은 행 수를 알려줍니다.

단계 4: 삭제 확인하기

삭제가 기대대로 이루어졌는지 확인하는 것이 항상 좋습니다. SELECT 쿼리를 사용할 수 있습니다:

SELECT * FROM students WHERE grade < 60;

삭제가 성공적이었다면, 이 쿼리는 결과를 반환하지 않아야 합니다.

일반 DELETE 방법

다음은 MySQL에서 일반적으로 사용되는 DELETE 방법을 요약한 표입니다:

방법 설명 예제
모든 행 삭제 테이블에서 모든 데이터 제거 DELETE FROM table_name;
특정 행 삭제 조건을 만족하는 행 제거 DELETE FROM table_name WHERE condition;
LIMIT으로 행 제거 지정된 수의 행 제거 DELETE FROM table_name WHERE condition LIMIT n;
ORDER BY로 행 제거 특정 순서로 행 제거 DELETE FROM table_name WHERE condition ORDER BY column LIMIT n;
JOIN으로 행 제거 여러 테이블의 데이터를 기반으로 행 제거 DELETE t1 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id WHERE condition;

데이터를 지우는 것은 강력한 연산이며 쉽게 되돌릴 수 없습니다. WHERE 절을 두 배로 확인하고, 큰 데이터를 지우기 전에 데이터를 백업하는 것이 좋습니다.

결론적으로, DELETE 쿼리는 MySQL 도구 중 필수적인 도구입니다. 이를 통해 데이터베이스를 깨끗하게 유지하고 필요 없는 정보를 제거할 수 있습니다. 방을 정리하여 물건을 쉽게 찾을 수 있듯이, 깨끗한 데이터베이스는 데이터를 더 효율적으로 관리하고 쿼리를 실행하는 데 도움이 됩니다.

안전한 테스트 환경에서 이 DELETE 쿼리를 연습하여 편안해지세요! 곧 데이터베이스를 프로처럼 관리할 수 있을 것입니다! 즐거운 쿼리 작성을 하세요, 그리고 데이터베이스 세계에서는 안전하게 행동하는 것이 좋습니다!

Credits: Image by storyset