Data 연결 방법
1. JOIN
2. UNION, GROUP BY
3. Stored Procedure/Function
4. Sub-query
1. JOIN
2. UNION, GROUP BY
3. Stored Procedure/Function
CREATE or REPLACE FUNCTION FUNC1 (v_empno VARCHAR2) RETURN VARCHAR2 IS v_avg_amt VARCHAR2(30); BEGIN SELECT avg(급여총액) INTO v_avg_amt FROM 급여 WHERE 사번 = v_empno AND 년월 like '201407%'; RETURN v_avg_amt; END FUNC1; SELECT 사번, 성명, 직급, 직책, FUNC1(사번) FROM 사원 WHERE 부서 = '1100';
4. Sub-query
SELECT X.CODE, X.NAME, X.SAFE, X.QTY FROM 자재 X, 자재일일재고 Y WHERE Y.CODE = X.CODE AND Y.DATE = TO_CHAR(SYSDATE,'yyyymmdd') AND X.CODE IN (SELECT CODE FROM 구매 WHERE PROCESS = '발주중' AND DATE LIKE '201407%');연결 형태별 활용 기준
구분
|
JOIN
|
UNION, GROUP BY
|
STORED FUNCTION
|
SUB-QUERY
|
M : M 관계의 DATA LINK |
ㅇ
|
ㅇ
|
ㅇ
|
ㅇ
|
결과의 추출을 원할 때 |
ㅇ
|
ㅇ
|
ㅇ
|
X
|
다양한 추출Column이 필요할 때 |
ㅇ
|
ㅇ
|
?
|
X
|
양측 OUTER JOIN |
X
|
ㅇ
|
X
|
X
|
독자적으로 범위를 줄일 수 있을 때 |
ㅇ
|
ㅇ
|
ㅇ
|
ㅇ
|
다른 쪽에서 결과를 받는 것이 유리 |
X
|
X
|
ㅇ
|
ㅇ
|
배타적 관계의 연결 |
X
|
ㅇ
|
ㅇ
|
?
|
연결할 집합이 유사하지 않을 때 (통분이 안될 때) |
ㅇ
|
?
|
ㅇ
|
ㅇ
|
부분범위처리 |
?
|
X
|
ㅇ
|
?
|
기본키와 외부키가 아닌 경우 연결 |
ㅇ
|
ㅇ
|
ㅇ
|
ㅇ
|
단순히 조건 CHECK만 원할 때 |
?
|
X
|
?
|
ㅇ
|
단순히 조건의 상수값만 제공할 때 |
?
|
X
|
?
|
ㅇ
|
댓글 없음:
댓글 쓰기