메뉴 건너뛰기

bysql.net

4_장_요약

2011.11.03 14:54

suspace 조회 수:6426

## 제1절 표준 조인 

- 조인의 종류 

 1) INNER JOIN

 2) NATURAL JOIN

 3) USING 조건절

 4) ON 조건절

 5) CROSS JOIN

 6) OUTER JOIN

 

- 사용자는 문법을 통해 테이블 간의 JOIN 조건을 FROM 절에서 명시적으로 정의할 수 있다.


##제 2절 집합 연산자

- 두개 이상의 테이블에서 JOIN을 사용하지 않는다.

- SET 연산자 : 여러개의 SQL 문을 연결하여 데이터를 결합하는 방식을 사용한다. 

- UNION은 합집합, UNION ALL은 확장된 합집합, INTERSECT는 교집합, EXCEPT/MINUS 는 차집합


## 제3절 계층형 질의와 셀프 조인 

- 계층형 질의(HIERARCHICAL QUERY): 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해 사용함.

- 셀프 조인(SELF JOIN) : 동일 테이블 사이의 조인시 사용함,  FROM 절에 동일 테이블이 두번 이상 나타나게 된다. 


##제 4절 서브쿼리 

- 서브쿼리 : 하나의 메인쿼리 안에 포함되어 이는 종속적인 SQL 문장

- 종류 

 1) NESTED SUBQUERY

 2) INLINE VIEW

 3) SCALAR SUBQUERY


##제 5절 그룹 함수

- 그룹 함수의 종류 

 1) ROLLUP : 소그룹 간의 소계를 계산

 2) CUBE : GROUP BY 항목들 간의 다차원적인 소계를 계산

 3) GROUPING SETS : 특정 항목에 대한 소계를 계산


##제 6절 윈도우 함수 

1.종류
- 순위 관련 함수 : RANK, DENSE_RANK, ROW_NUMBER
- 집계 관련 함수 : SUM, MAX, MIN, AVG, COUNT
- 행 순서 관련 함수 : FIRST_VALUE, LAST_VALUE, LAG, LEAD
- 비율 관련 함수 : CUME_DIST, PERCENT_RANK, NTILE, RATIO_TO_REPORT
- 선형 분석을 포함한 통계 분석 관련 함수

 

SELECT
WINDOW_FUNTION (ARGUMENTS) OVER ( [PARTITION BY 칼럼] [ORDER BY절] [WINDOWING절])
FROM 테이블명;

 

2.그룹 내 순위 함수
- RANK 함수 : 특정항목(칼럼) / 특정범위(PARTITION) / 전체 데이터에 대한 순위.동일한 값엔 동일한 순위 (1-2-2-4)
- DENSE_RANK 함수 : RANK와 흡사.동일한 순위를 하나의 건수 취급 (1-2-2-3-4)
- ROW_NUMBER 함수 : 동일한 값이라도 고유한 순위 부여 (1-2-3-4)

 

3.일반 집계 함수
- SUM / MAX / MIN / AVG / COUNT 함수

 

4.그룹 내 행 순서 함수
- FIRST_VALUE 함수   (MIN함수 결과와 동일) : 파티션별 윈도우에서 가장 먼저 나온 값. 공동 등수 경우 처음 나온 행만 처리
- LAST_VALUE 함수   (MAX함수 결과와 동일) : 파티션별 윈도우에서 가장 나중에 나온 값. 공동 등수 경우 처음 나온 행만 처리
- LAG 함수   : 이전 몇 번째 행의 값
- LEAD 함수   : 이후 몇 번째 행의 값

 

5.그룹 내 비율 함수
- RATIO_TO_REPORT 함수 : 파티션별 전체 SUM()에 대한 행별 백분율을 소수점으로 결과값 > 0 & <=1 범위.개별 RATIO 합은 1
- PERCENT_RANK 함수 : 제일 먼저 나오는 것을 0, 제일 늦게 나오는 것을 1로 하여 행의 순서별 백분율.결과값 >= 0 & <= 1 범위
- CUST_DIST 함수 : 파티션별 전체건수에서 현재 행보다 작거나 같은 건수에 대한 누적백분율.결과값 > 0 & <= 1 범위
- NTILE 함수 : 파티션별 전체건수를 ARGUMENT 값으로 N 등분한 결과

 


##제 7절 DCL

 - DCL(DATA CONTROL LANGUAGE) 


##제 8절 절차형 SQL

 - 절차형 SQL 을 이용하여 SQL 문장의 조건에 따른 분기 처리나 SQL 문장의 연속적인 실행을 이용하여 특정 기능을 수해하는 저장 모듈을 생성할 수 있다. 절차형 SQL 을 이용하여 PROCEDURE, TRIGGER, USER DEFINED FUNCTION을 만들 수 있다.