728x90

- instructor 릴레이션의 모든 투플을 삭제

  delete from instructor

 

- 재무과의 교수들과 관련된 instructor 릴레이션의 모든 투플을 삭제하라

  delete from instructor

  where dept_name= ’Finance’;

 

- Watson 건물에 위치한 학과와 관련된 instructor 릴레이션의 모든 교수를 삭제하라

  delete from instructor

  where dept name in (select dept name

                               from department

                               where building = ’Watson’);

 

- 대학의 평균보다 낮은 급여를 가진 모든 교수의 레코드들을 삭제하라

  delete from instructor

  where salary < (select avg (salary)

  from instructor);

 

문제 : 평균 급여가 바뀌게 됨

SQL 해결책 :

1. 먼저 평균 급여를 계산하고 삭제할 모든 투플을 찾는다.

  with avg_sal(val) as (select avg(salary) from instructor)

2. 이 후, 찾은 투플을 삭제한다. (평균을 다시 계산하거나 투플을 다시 테스트할 필요 없음)

  delete from instructor where salary < (select val from avg_sal)

반응형

'전공 공부 > 데이터베이스시스템' 카테고리의 다른 글

데이터베이스의 변경 – 갱신  (0) 2021.01.01
데이터베이스의 변경 – 삽입  (0) 2021.01.01
집합 비교  (0) 2020.12.31
중첩 하위 질의  (0) 2020.12.31
SQL  (0) 2020.12.31
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기