더북(TheBook)

코드 10-30에서는 DELETE FROM 다음에 b만 명시해서 한 개 테이블에서 데이터를 삭제합니다. USING emp_delete a, emp_delete2 b라고 했으니 삭제할 테이블은 emp_delete2 테이블이죠. 그리고 WHERE 절에 두 테이블의 emp_no 칼럼 값이 같은 건을 삭제하라고 기술합니다. 따라서 DELETE 문은 두 테이블을 비교해 emp_no 값이 같은 건을 emp_delete2 테이블에서 삭제합니다.

삭제한 후에 두 테이블을 조회해 보면 emp_delete 테이블은 삭제되지 않았고, emp_delete2 테이블은 조인 조건에 맞지 않은 사번 1018인 맥스웰 건만 남기고 나머지 데이터는 모두 삭제됐습니다.

여기서 만약 DELTE FROM 다음에 a만 기술했다면 emp_delete 테이블 데이터만 삭제되며, a와 b 모두 기술했다면 두 테이블의 데이터가 모두 삭제됩니다. 또한 이전과 마찬가지로 USING emp_delete a, emp_delete2 b 부분을 USING emp_delete a INNER JOIN emp_delete2 b로 바꿔 써도 동일한 데이터가 삭제됩니다.

두 가지 형태의 다중 테이블 DELETE 문 중 어느 것을 사용하든지 상관없습니다. DELETE 문을 작성하면서 좀 더 익숙해지고 이해하기 쉬운 구문을 골라 사용하면 됩니다.

1분 퀴즈 3

emp_delete 테이블에서 사원명이 플랑크인 데이터를 삭제하는데, 이번에는 사번이 빠른 건 1개만 삭제하는 쿼리를 작성해 보세요.

정답 및 해설

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.