ex) select * from employee,department where id = 1
1.from employee, department
-> 여기에는 사실 JOIN이 숨어 있다. 바로 Cross JOIN의 implicit JOIN이다.
FROM 뒤에는 2개 이상의 table이 있는 경우, 기본적으로는 Cross Join이 default로 실행이 된다.
2. WHERE id = 1
-> 1에서 JOIN된 tuple들의 집합(테이블) 중, 우리가 원하는 tuple 즉 selection codition을 충족하는 tuple들을 최종적으로 여기서 선택을 한다.
3. Select *
-> 1,2가 실행 완료가 되고 실행되는 부분으로써, 1,2의 결과로 나온 최종 tuples들의 projection attribute를 반환(출력)한다.
위 사실들에 근거하여 SQL문 작성의 TIP을 고려해 볼 수가 있다.
1. 먼저 우리가 최종적으로 반환(출력)하고 싶은 Projcetion Attribute가 뭔지를 파악 후, select 뒤에 작성
2. 해당 Projcetion Attribute을 반환(출력)시키기 위해서 필요한 Table들이 무언인지 파악을 하고,
그것들을 단순히 연결(Cross Join)할 것인지, 아니면 ON 키워드 혹은 JOIN 키워드들 을 사용하여 정제된 Table들을
뽑아 낼 것인지 파악하고, 그에 막춰서 FROM 뒤에 SQL문을 작성
3. FROM에서 만들어진 Table 중에서도 어떤 것을 선택(selection)할 것인지를 파악하여, where절 뒤에 선택 조건(selection conditon)을 작성한다.
'CS 잡지식' 카테고리의 다른 글
동기화(Synchronization) VS 동시성(Concurrency) (0) | 2023.02.18 |
---|---|
HTML vs CSS (0) | 2023.02.18 |
HTML, CSS, Java Script에 대한 고찰! (0) | 2023.02.18 |
예외는 2가지 측면에서 생각! (0) | 2023.02.13 |
@Transational 사용 시 주의점( 매우 중요 && 면접에서 자주 나옴) (0) | 2023.02.10 |