728x90
1. Deletion
- 아래 예시를 보면 salary가 삭제될때마다 평균이 변하는 것 아닌가? 이런 모호한 해석이 가능하다.
- 따라서 sql에서는 select문을 미리 실행해서 값으로 결과를 대체하여 해석의 모호성을 해결한다.
2. Insertion
- 두번째 예시도 해석의 모호성이 존재한다. 위의 방법과 마찬가지로 select를 먼저 수행해서 값으로 대체한 후 insert를 수행한다.
3. Update
- 세번째 예시를 보면 update가 실행되면서 avg가 바뀌는 모호함이 생길 수 있으니 (select avg)를 먼저 확보해서 상수로 대체하고 update가 수행되어야 한다.
- 위의 예시에서도 의도대로 작업을 하기 위해서는 구문의 실행 순서가 위에서 아래로 되어야 한다.
- case를 사용하면 다음과 같이 한줄로 표현이 가능하다.
- scalar subquey결과를 구해서 tot_cred의 column을 업데이트하는 구문이다.
- 만약 수업을 들은게 하나도 없는 학생의 경우는 sum(credits)가 null이 되기 때문에 sum대신 case문을 사용하는게 더 안전할 것이다.
728x90
반응형
'ComputerScience > Database' 카테고리의 다른 글
DB - 10. E-R Model (0) | 2021.10.27 |
---|---|
DB - 9. JDBC (0) | 2021.10.27 |
DB - 7. More SQL statements(2) (0) | 2021.10.06 |
DB - 6. More SQL statements(1) (0) | 2021.09.29 |
DB - 5. Schema Diagram, Relational Algebra (0) | 2021.09.15 |