1. STANSARD SQL 개요

 

새로운 기능을 포함

- STANDARD JOIN 기능 추가 (CROSS, OUTER JOIN 등 새로운 FROM 절 JOIN 기능들)

- SCALAR SUBQUERY, TOP-N QUERY 등의 새로운 SUBQUERY 기능들

- ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능

- WINDOW FUNCTION 같은 새로운 개념의 분석 기능들

 

. 일반 집합 연산자

E.F.Codd박사가 처음으로 개발

save image

 

  1. UNION 연산 UNION 기능

수학적 합집합 제공, 공통의 교집합 중복을 없애기 위한 작업

UNION ALL 공통 집합을 중복해서 그대로 보여줌, 정렬작업이 일어나지 않아서 사용 권고함

  1. INTERSECTION 연산 INTERSECT 기능

수학적 교집합

  1. DIFFRENCE 연산 EXCEPT(ORACLE MINUS)기능

수학적 차집합, 첫번째 집합에서 두번째 집합과의 공통집합을 제외한 부분

  1. PRODUCT 연산 CROSS JOIN 기능

곱집합, 생길수있는 모든 데이터 조합으로 집합의 M*N, CARTESIAN PRODUCT로도 불림

 

. 순수 관계 연산자

save image

  1. SELECT 연산 WHRER절로 구현 SELECT연산과 절은 다른 의미
  2. PROJECT 연산 SELECT절로 구현 칼럼 선택기능 수현
  3. (NATURAL) JOIN 연산 다양한 JOIN 기능으로 구현 INNER, OUTER, USING, ON 다양하게 발전
  4. DIVIDE연산 사용되지 않음

 

관계형 데이터 베이스

요구사항분석, 개념적 데이터 모델링 논리적 데이터 모델링 물리적 데이터 모델링

엔티티확정 정규화 과정, M:M 관계 분해하는 절타

특히, 정규화과정은 데이터 정합성과 데이터 저장공간 절약을 위해 엔티티 최대한 분리하는 작업으로 3차정규형이나 보이스코드 정규화까지 진행

정규화 이후 하나의 주제에 관련한 여러 엔티티가 나눠지고 그것들은 연결하기 위해 JOIN 작업이 이루어짐

 

2. FROM JOIN 형태


  • INNER JOIN     
  • NATURAL JOIN  : INNER JOIN 하위개념, 동일한 이름을 갖는 모든 칼럼에 대해 EQUI조인 수행
  • USING 조건절   : 동일한 칼럼명
  • ON 조건절      : WHERE 조인 조건처럼 ON 조건절로 분리하여 표시, 명시적으로 조건 구분할 있고 컬럼명이 다르더라도 사용가능
  • CROSS JOIN
  • OUTER JOIN

 

3. INNER JOIN


내부 JOIN, 동일한 값이 있는 행으로만 반환

USING 조건절, ON 조건절을 사용

예제) SELECT EMP.DEPTNO, EMPNO, ENAME, DNAME

 FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;

 

4. NATURAL JOIN


테이블간 동일한 이름이 갖는 모든 칼럼에 대해 EQUI JOIN 수행

USING/ON/WHERE 조건절에서 정의 불가능, SQL SERVER 사용 불가

동일한 칼럼 데이터가 같은 타입이여야하고 별명이나 접두사를 붙일 없음, 도메인과 칼럼명이 동일해야함

 

5. USING 조건절


FROM 절의 USING 조건절을 이용하면 같은 이름을 가진 칼럼들 중에서 원하는 칼럼에 대해서만 EQUI JOIN 할수 있음,

SQL SERVER 사용 불가

별명과 접두사를 붙일 없음

 

6. ON 조건절

WHERE 조건절과 불리한 JOIN 조건절, 칼럼명이 달라도 사용가능

임의의 JOIN 조건을 지정하거나 이름이 다른 칼럼명을 JOIN하거나 칼럼을 명시하기 위해 사용

별명이나 접두사를 사용하여 SELECT절에 사용되는 칼럼 명확하게 지정 필요

가독성이 떨어지는 단점

 

. WHERE 절과의 혼용

. ON 조건절 + 데이터 검증 조건 추가

: ON 조건절 안에서도 데이터 검색 조건 추가가능 , OUTER JOIN에서 추가 조건 경우는 ON 절에 표기

. ON 조건절 예제

. 다중 테이블 JOIN

 

7. CROSS JOIN

CARTESIAN PRODUCT 또는 CROSS PRODUCT 표현, M*N건으로 조합, 모든 데이터 조합을 말함

WHERE절에 조인조건 추가 가능하지만 INNER JOIN 같은 효과이기 때문에 사용하는 의미가 없음

 

8. OUTER JOIN

동일한 값이 없는 행도 반환할 사용

ORACLE 칼럼 뒤에 (+) 표시

, WHERE 검색조건의 불분확한 단점, IN이나 OR연산자 사용시 에러, (+) 누락 칼럼 존재시 오류 발생, FULL OUTER JOIN 미지원

 

. LEFT OUTER JOIN

왼쪽에 있는 값은 동일한 조인 값이외에도 전부 출력, LEFT JOIN 으로도 생략해서 사용 가능

. RIGHT OUTER JOIN

오른쪽 있는 값은 동일한 조인 값이외에도 전부 출력, RIGHT JOIN 으로 생략해서 사용 가능

. FULL OUTER JOIN

, 오른쪽 데이터를 모두 읽어 결과 생성, LEFT RIGHT 합집합 결과랑 동일

, UNION ALL 아닌 UNION 기능과 같으므로 중복된 데이터는 삭제

FULL JOIN으로 생략해서 사용 가능

 

9. INNER VS. OUTER VS. CROSS JOIN 비교

save image

'자격증 공방 > SQLD' 카테고리의 다른 글

제 4-3절 계층형 질의와 셀프 조인  (0) 2018.07.11
제 4-2절 집합 연산자 (SET OPERATOR)  (0) 2018.07.11
제 3-9절 조인(JOIN)  (0) 2018.07.07
제 3-8절 ORDER BY절  (0) 2018.07.07
제 3-7절 GROUP BY, HAVING 절  (0) 2018.07.07

+ Recent posts