SQL 작성 방법
- 테이블의 구조와 관계들에 먼저 익숙해진다.
- 디자인하고자 하는 쿼리 결과에서 어떤 걸 보고자 하는지 정립을 한다.
- select뒤에 list로 나열한다.
- 질의하고 싶은 테이블을 알아내고 from 뒤에 쓴다.
- 1개 이상의 테이블이 필요할 경우 어떻게 이 테이블들을 join할 것인지 알아내고 join condition에 대한 내용을 where 뒤에 쓴다.
- 별도의 추가적인 조건이 있으면 where 뒤에 쓴다.
- 필요한 경우 우리가 작성한 쿼리를 group by, having, order by를 사용해서 세밀하게 수정한다.
ex) 각각의 주문에 대해서 주문 총액을 출력하고 싶다. 주문한 각각의 물건에 대해서 총 가격은 각각 가격 * 총 주문 개수
-> select order_id, sum(product_price * quantity) from orderline natural join product group by orderline.order_id;
Subquery
- 다른 쿼리의 where 뒤에 들어가 있는 쿼리
- in 안에 작성
- subquery 말고 join을 사용해도 똑같은 쿼리를 만들 수 있음
- 여러개의 값이 필요할 때는 in을 써야하고, 한 개의 값을 써야할 때는 where을 써야함
- 가령 가장 크거나 작은 값을 찾고 싶으면 값이 1개이므로 where을 씀
Combine Query
- Union
- Union compatible: 두 relation의 컬럼 개수가 같고, domain(data type)이 같아야 함
- Duplication elimination: 합을 하게 되면 중복된 것들 중 하나만 결과에 남음
- union을 사용해서 합집합
- Intersection
- Difference
- minus를 사용해서 차집합