조인

1)등가 교집합

더보기

(1)EQUI JOIN

-두개의 테이블 간에 일치하는 것을 조인

- "=" 을 사용해서 두개의 테이블을 연결

 

(2)INNER JOIN 

-ON문을 사용하여 테이블 연결

 

(3)INTERSECT 연산

-두개의 테이블에서 교집합을 조회

2)NON-EQUI JOIN

-두개의 테이블간에 조인하는 경우 > , < , >= , <= 등을 사용

-정확하게 일치하지 않는 것을 조인

 

3)OUTER JOIN

-두 개의 테이블 간에 교집합을 조인하고 한쪽 테이블에만 있는 데이터도 포함시켜 조인

-LEFT JOIN: 왼쪽 테이블에만 있는 행도 포함하여 조회

-RIGHT JOIN: 오른쪽 테이블에만 있는 행 포함하여 조회

-FULL JOIN: LEFT JOIN 과 RIGHT JOIN 모두 포함하여 조회

 

4)CROSS JOIN 

-조인 조건구 없이 2개의 테이블을 하나로 조인

-FROM 절에 CROSS JOIN구를 사용하면

 

5)UNION을 사용한 합집합 구현

더보기

(1)UNION

-두 개의 테이블을 하나로 만드는 연산

-두 개의 테이블의 칼럼 수, 데이터 형식 모두 일치해야한다.

 

(2)UNION ALL

-두 개의 테이블을 하나로 합치는 것 

-UNION 처럼 중복을 제거하거나 정렬을 유발하지 않는다

 

6)차집합을 만드는 MINUS

-두 개의 테이블에서 차집합으 조회

-먼저 쓴 SELECT문에는 있고 뒤에 쓴 SELECT문에는 없는 집합 조회

 

계층형 조회

-계층형 조회는 ORACLE 데이터베이스에서 지원하는 것으로 계층형으로 데이터를 조회, 역방향 조회도 가능

CONNECT BY 키워드  
LEVEL 검색 항목의 깊이
(가장 상위 레벨이 1)
CONNECT_BY_ROOT 계층구조에서 가장 최상위 표시
CONNECT_BY_ISLEAF 계층구조에서 가장 최하위 표시 
SYS_ CONNECT_BY_PATH 계층구조에서 전체 전개 경로 표시
NOCYCLE 순환구조가 발생지점까지만 전개
CONNECT_BY_ISCYCLE 순환구조 발생지점을 표시
계층형 조회  
START WITH 조건  계층 전개의 시작위치 지정
PRIOR 자식=부모 부모->자식 방향으로 검색을 수행 , 순방향 전개
PRIOR 부모=자식 자식->부모 방향으로 검색을 수행, 역방향 전개
NOCYCLE 이미 조회된 데이터를 다시 조회되어 형성된 CYCLE 발생X
ORDER SIBILINGS BY 칼럼명 동일한 LEVEL인 형제노드 사이에서 정렬을 수행
   

 

서브쿼리

1)MAIN QUERY와 SUB QUERY 

-SUB QUERY는 SELET문 내에 다시 SELET문을 사용하는 SQL문

-WHERE구에 SELET문 사용

-서브쿼리 밖에 있는 SELET문은 MAIN QUERY이다

 

2)단일 행 서브쿼리와 다중 행 서브쿼리

-서브쿼리가 반환하는 행의 개수에 따라 분류

(1)단일 행 서브쿼리 
-서브쿼리 실행시 반드시 한 행만 조회
-비교 연산자 사용

(2)다중 행 서브쿼리
-서브쿼리 실행시 여러개의 행 결과 조회
-다중 행 비교 연산자인 IN,ANY,ALL,EXISTS를 사용

3)스칼라 SUBQUERY

-반드시 한 행과 한 컬럼만 반환하는 서브쿼리

 

4)연관 QURERY

-MAIN QUERY내의 커리를 사용

 

 

그룹 함수

1)ROLLUP

-GROUP BY 칼럼에 대해 SUBTOTAL을 만들어 준다

 

2)GROUPING 함수

-다른 그룹함수에서 생성되는 합계값을 구분하기 위해서 만들어진 함수

-소계 합계 등이 계산되면 1을 반환하고 그렇지 않으면 0을 반환

 

3)GROUPING SETS 함수

-GROUP BY에 나오는 칼럼의 순서와 관계없이 다양한 소계를 만들 수 있다.

 

4)CUBE함수

-CUBE함수에 제시한 칼럼에 대해 결합 가능한 모든 집계를 계산 

-즉 조합할 수 있는 경우의 수가 모두 조합

 

 

윈도우 함수

-행과 행간의 관계를 정의하기 위해서 제공되는 함수

-순위,합계,평균,행위치등을 조작

 

-윈도우 함수 구조-
1.ARGUMENTS: 인수를 설정 
2.PARTITION BY: 전체 집합을 기준에 의해 소그룹으로 나눈다.
3.ORDER BY: 어떤 항목에 대해 정렬
4.WINDOWING: 행기준의 범위 설정

1)순위 합수 

-RANK: 동일한 순위는 동일한 값이 부여

-DENSE_RANK: 동일한 순위를 하나의 건수로 계산

-ROW_NUMBER: 동일한 순위에 대해 고유의 순위를 부여

 

2)집계 함수

-윈도우 함수를 제공 

-SUM , AVG , COUNT , MAX , MIN

 

3)행 순서 관련 함수

-특정 위치의 행을 출력

-FIRST_VALUE: 파티션에서 가장 처음에 나오는 값을 구한다, MIN함수 결과와 동일

-LAST_VALUE: 파티션에서 가장 나중에 나오는 값을 구한다, MAX함수 결과와 동일

-LAG:이전 행을 가지고 온다.

-LEAD:특정 위치의 행을 가지고 온다 , 기본값은 1

 

4)비율 관련 함수

-백분율,파티션을 N분으로 분할한 결과 등을 조회

-CUME_DIST: 파티션 전체 건수에서 현재 행보다 작거나 같은 건수에 대한 누적 백분율 조회

-PERCENT_RANK

-NTILE: 파티션 별 전체 건수를 N등분한 결과를 조회

-RATIO_TO_PERORT 

 

테이블 파티션

1)PARTITION

-파티션은 대용량 테이블을 여러개의 데이터 파일에 분리하여 저장

-입력,수정,조회 성능이 향상

 

2)RANGE PARTITION 

-테이블 칼럼 중에서 값의 범위를 기준으로 여러 개의 파티션으로 데이터를 나누어 저장

 

3)LIST PARTITION 

-특정 값을 기준으로 분할하는 방법

 

4)HASH PARTITION

-내부적으로 해시 함수를 사용하여 데이터를 분할

-데이터베이스 관리시스템이 알아서 분할하고 관리

+ Recent posts