더북(TheBook)

코드를 보면 DELETE 다음에 a, b를 명시합니다. 이는 삭제할 테이블의 별칭입니다. 별칭 대신 테이블명을 직접 명시해도 되지만, 별칭을 사용하는 것이 간편하죠. 그리고 FROM 다음에 emp_delete a, emp_delete2 b라고 테이블명과 별칭을 명시합니다. 여기서 DELETE 다음의 a는 emp_delete를, b는 emp_delete2 테이블을 가리킵니다. 그리고 WHERE 절에서 두 테이블의 기본 키 칼럼인 emp_no 값이 같은 조인 조건을 기술합니다. 따라서 이 문장은 두 테이블에서 emp_no 칼럼 값이 같은 건을 찾아 모두 지웁니다.

삭제한 후 두 테이블을 조회해 보면 emp_delete 테이블은 모든 데이터가 삭제됐고 emp_delete2에는 사번 1018인 건만 남았습니다. 코드 10-26의 DELETE 문을 실행해 emp_delete 테이블에서 이미 2건의 맥스웰 사원 중 나중에 입력된 건(사번이 1018인 건)을 삭제했지만, emp_test 테이블을 복제한 emp_delete2에는 이 건이 남아 있어서 조인 조건에 맞지 않아 삭제되지 않았습니다. 이처럼 DELETEFROM 사이에 여러 테이블을 명시하면 조건에 맞는 테이블의 데이터가 삭제됩니다.

그리고 FROM emp_delete a, emp_delete2 b 부분을 FROM emp_delete a INNER JOIN emp_delete2 b라고 명시해도 됩니다. 조인을 배울 때 INNER JOIN 구문을 사용하면 조인 조건을 ON 절에 기술한다고 했습니다. 그런데 DELETE 문에서는 ON이 아닌 WHERE 절에 기술하기 때문에 혼동을 줄 수 있어서 여기서는 INNER JOIN 구문을 사용하지 않았습니다.

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