더북(TheBook)

4 정답

DELETE FROM dept_emp
 WHERE SYSDATE() NOT BETWEEN from_date AND to_date ;

해설 dept_emp 테이블은 사번(emp_no), 부서 번호(dept_no), 시작 일자(from_date), 종료 일자(to_date) 4 개의 칼럼으로 구성되어 있습니다. 여기서 시작일자와 종료일자는 해당 사원이 해당 부서에 소속된 기간을 나타냅니다. 따라서 현재 시점을 기준으로 사원의 부서 할당 데이터만 조회할 때, SELECT 문의 WHERE 절에서 현재 날짜를 반환하는 SYSDATE() 함수가 이 두 일자(from_date와 to_date) 사이에 있는 건인지 확인하는 조건을 주면 됩니다. 이럴 때 BETWEEN... AND 연산자를 주로 사용했죠. 그런데 문제는 과거 기준 데이터를 삭제하는 DELETE 문장을 작성하는 것이니 DELETE FROM 다음에 테이블 이름을 명시하고 WHERE 조건에서 SYSDATE() NOT BETWEEN... AND로 조건을 확인하면 과거에 할당된 내역만 삭제할 수 있습니다.

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