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 |