SQL에서 EXISTS 함수와 UNIQUE 함수
중첩질의는 외부참조를 하는경우와 그렇지 않은경우를 나눠서 다르게 처리한다.
중첩질의
- 중첩질의는 시간이 많이 걸린다.
- 특히 외부 참조를 하는 경우에 바깥쪽 테이블의 각 튜플에 대해서 내부질의가 한번씩 실행되기 때문에 내부 질의의 실행 횟수는 바깥쪽 Employee 테이블의 튜플 수만큼 실행된다. 내부 질의가 몇번 실행되느냐 ? 외부질의의 튜플 수 만큼 실행된다.
SQL에서 명시적 집합과 널
재명명 애트리뷰트와 조인된 테이블
SELECT E.LNAME AS EMPLOYEE_NAME,
S.LNAME AS SUPERVISOR_NAME
E.LNAME을 EMPLOYEE_NAME로 이름을 바꾸고,
S.LNAME을 SUPERVISOR_NAME로 이름을 바꾼다.
재명명 애트리뷰트와 조인된 테이블
16절과 16-1 은 똑같음.
외부조인(outer join)
그동안 우리가 배운 join은 innter join으로 생각
- 그 외에 LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN 이 존재한다.
outer join 의 요약
- 일반적으로 join 되는 경우에, 조건이 있는데 두 필드의 값이 같다" 와 같은 조건임. 근데 조건이 matching이 되는 튜플이 있고, 없는 튜플도 있다. join에 참여하는 튜블과 , join에 참여하지 않는 튜플로 구분한다. A1(A튜플 중 JOIN 참여), A2(A튜플 중 JOIN 참여X), B1(B튜플 중 JOIN 참여), B2(B튜플 중 JOIN 참여X)
1. Inner Join
- 우리가 흔히 알고있는 join임.
- join 조건에 만족하는 튜플들만 붙여서 결과를 만들어낸다.
2. Left Join
- A 테이블 중 join에 참여하지 않는 튜플을 포함해서 넣는다.
3. Right Join
- B 테이블 중 join에 참여하지 않는 튜플을 포함해서 넣는다.
4. Full Outer Join
- A 테이블 중 join에 참여하지 않는 튜플을 포함해서 넣는다.
- B 테이블 중 join에 참여하지 않는 튜플을 포함해서 넣는다.
집단함수와 그룹화
- 집단함수 = 집단화함수 = 집계함수
Sum, Max, Min, Avg, COUNT를 이용해서 테이블의 집계치를 편리하게 구할 수 있음. !
Having 절
- sql에서 제일 마지막 절임.
- 그룹을 선택 하는 조건이다
- where 절은 튜플에 대한 조건임. : 튜플이 결과에 포함될 것이냐 말것이냐 조건임.
- GROUP BY에 의해서 여러 그룹들이 만들어졌을 때 , 그 그룹을 최종적으로 담을 것이냐 안담을 것이냐 하는 것.
SQL 질의에 대한 논의와 요약