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