본문 바로가기

ComputerScience/Database

DB - 7. More SQL statements(2)

728x90

1. Exists

- exist는 ()안에서 튜플이 하나도 안나온다면 F 하나라도 나왔다면 T를 반환한다.

- subquery는 outer query의 횟수만큼 계속 실행된다. section이 1000개라면 subquery도 1000번 돌아야 하는 것이다.

- 두 쿼리가 correlated 되어있기 때문이다 (S.course_id 때문)

- 이전시간에 배운 in의 경우는 subquery는 딱한번 실행되고 나온 결과로 바깥 query가 돈다.

- 두 쿼리가 correlated 되어 있지않기 때문이다

- not exist는 튜플이 하나도 나오지 않아야 true가 된다.

- 참고로 subquery에 첫번째 쿼리는 한번 수행된 결과로 대체가 가능하지만 두번재 쿼리는 매번 학생의 id를 가지고 반복된다.

2. Unique

- unique는 ()안에 결과물에 중복된 튜플이 있는지 없는지에 따라 F, T가 반환된다.

- 결과물 이 빈 테이블이라면 unique는 T를 반환한다.

3. Subqueries in from clause

- 동일한 결과를 내는 다른 표현은 아래와 같다.

- having절을 사용하면 다음과 같다.

4. with clause

- with로 임시테이블을 만들어서 작업을 한다.

- department테이블에서 budget이 max인 값을 꺼내 value라는 column을 갖는 새로운 임시 테이블을 만든다. 테이블 이름은 max_budget이다. 

- 아래 예시처럼  두개의 임시 테이블을 정의할 수도 있다.

5. Subqueries in select clause

- select문의 두번째 ()는 scalar 값이다. 즉 결과물로 table이 아닌 scalar value를 기대한다.

 

6. 연습

- with 절을 사용하면 다음과 같다.

7. 정리

728x90
반응형

'ComputerScience > Database' 카테고리의 다른 글

DB - 9. JDBC  (0) 2021.10.27
DB - 8. More SQL statements(3)  (0) 2021.10.13
DB - 6. More SQL statements(1)  (0) 2021.09.29
DB - 5. Schema Diagram, Relational Algebra  (0) 2021.09.15
DB - 4. Keys (at relational DB)  (0) 2021.09.15