본문 바로가기

ComputerScience/Database

DB - 8. More SQL statements(3)

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