DELETE 쿼리는 테이블에서 행을 제거하는 데 사용되는 데이터 조작 언어의 하위 부분입니다. 회원가입 삭제 방법 MySQL 면접때 많이 나오는 질문입니다. MySQL에서 조인 삭제 문을 사용하는 것은 쉬운 과정이 아닙니다. 이번 섹션에서는 DELETE 쿼리에서 INNER JOIN 또는 LEFT JOIN을 사용하여 여러 테이블의 레코드를 삭제하는 방법을 설명하겠습니다.
INNER JOIN을 사용하여 JOIN 삭제
내부 조인 쿼리는 한 테이블의 행과 지정된 조건을 충족하는 다른 테이블의 일치하는 행을 제거하기 위해 삭제 쿼리와 함께 사용할 수 있습니다.
통사론
다음은 Inner Join을 사용하여 둘 이상의 테이블에서 행을 삭제하는 데 사용할 수 있는 구문입니다.
DELETE target table FROM table1 INNER JOIN table2 ON table1.joining_column= table2.joining_column WHERE condition
여기서 대상은 지정된 조건과 일치하여 행을 삭제하려는 테이블 이름입니다. 테이블에서 행을 삭제한다고 가정해 보겠습니다. T1 그리고 T2 어디 학생_ID = 2 이면 다음 명령문으로 작성할 수 있습니다.
Java 메소드의 배열
DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2;
위 구문에서 대상 테이블(T1 및 T2)은 DELETE 및 FROM 키워드 사이에 작성됩니다. 거기에서 테이블 이름을 생략하면 삭제문 단일 테이블에서만 행을 제거합니다. 으로 쓴 표현 에 키워드는 삭제하려는 테이블의 행과 일치하는 조건입니다.
예
테이블이 2개 있다고 가정하자 재학생 그리고 콘택트 렌즈 여기에는 다음 데이터가 포함됩니다.
테이블: 학생
표: 연락처
다음 쿼리를 실행하여 내용을 이해하세요. 조인 삭제 내부 조인을 사용합니다. 이 명령문은 두 테이블에서 동일한 ID를 가진 행을 삭제합니다.
무료 대 무료
DELETE students, contacts FROM students INNER JOIN contacts ON students.student_id=contacts.college_id WHERE students.student_id = 4;
성공적으로 실행되면 다음 메시지가 표시됩니다.
이제 다음 쿼리를 실행하여 행이 성공적으로 삭제되었는지 확인합니다.
mysql> SELECT * FROM students; mysql> SELECT * FROM contacts;
다음 행이 표시되는 것을 볼 수 있습니다. 학생_ID=4 삭제됩니다.
LEFT JOIN으로 JOIN 삭제
우리는 왼쪽(첫 번째) 테이블의 모든 행과 다른 테이블의 일치하거나 일치하지 않는 행을 반환하는 SELECT 문을 사용하여 LEFT JOIN 절을 이미 배웠습니다. 마찬가지로, 오른쪽(두 번째) 테이블의 일치하는 행이 없는 왼쪽(첫 번째) 테이블의 행을 삭제하기 위해 DELETE 키워드와 함께 LEFT JOIN 절을 사용할 수도 있습니다.
다음 쿼리는 DELETE 문이 행을 삭제하기 위해 LEFT JOIN을 사용하는 위치를 더 명확하게 설명합니다. 1 번 테이블 일치하는 행이 없습니다. 표2 :
DELETE Table1 FROM Table1 LEFT JOIN Table2 ON Table1.key = Table2.key WHERE Table2.key IS NULL;
위 쿼리에서는 DELETE 키워드와 함께 Table1만 사용하고 INNER JOIN 문에서와 같이 둘 다 사용하지는 않습니다.
예
테이블을 만들어보자' 콘택트 렌즈 ' 그리고 ' 고객 ' 다음 데이터가 포함된 데이터베이스에서:
표: 연락처
컴퓨터가 발명된 해는 언제입니까?
테이블: 고객
계정이 없는 고객을 제거하는 다음 문을 실행합니다. 핸드폰 숫자:
DELETE customers FROM customers LEFT JOIN contacts ON customers.customer_id = contacts.contact_id WHERE cellphone IS NULL;
성공적으로 실행되면 다음 메시지가 표시됩니다.
이제 다음 쿼리를 실행하여 행이 성공적으로 삭제되었는지 확인합니다.
mysql> SELECT * FROM customers;
고객이 휴대폰 번호를 갖고 있지 않은 행이 삭제된 것을 확인할 수 있습니다.