πŸ‘©β€πŸ’» JOIN : 두 개 μ΄μƒμ˜ ν…Œμ΄λΈ”μ—μ„œ 행을 κ²°ν•©ν•˜μ—¬ μ›ν•˜λŠ” μ»¬λŸΌκ°’μ„ κ²€μƒ‰ν•˜κΈ° μœ„ν•œ κΈ°λŠ₯

  • λ‘κ°œ μ΄μƒμ˜ ν…Œμ΄λΈ”μ—μ„œ μ»¬λŸΌκ°’μ„ κ²€μƒ‰ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ°˜λ“œμ‹œ 행을 κ²°ν•©ν•˜κΈ° μœ„ν•œ 쑰건을 μ œκ³΅ν•˜μ—¬ 검색
  • μΉ΄λ‹€μ‹œμ•ˆ ν”„λ‘œλ•νŠΈ(CATASIAN PRODUCT) : λ‘κ°œ μ΄μƒμ˜ ν…Œμ΄λΈ”μ„ 결합쑰건 없이 κ²€μƒ‰ν•œ 경우 λ°œμƒλ˜λŠ” κ²°κ³Ό - ꡐ차결합(CROSS JOIN)

πŸ“˜ 동등쑰인(EQUI JOIN) : 두 개 μ΄μƒμ˜ ν…Œμ΄λΈ”μ—μ„œ 결합쑰건에 = μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ 참인 행을 κ²°ν•©ν•˜μ—¬ 검색

> 결합쑰건  
: WHERE의 쑰건식을 μ‚¬μš©ν•˜μ—¬ ν‘œν˜„
: λ‘κ°œ μ΄μƒμ˜ ν…Œμ΄λΈ”μ— 같은 μ΄λ¦„μ˜ 컬럼이 μžˆλŠ” 경우 λ°˜λ“œμ‹œ [ν…Œμ΄λΈ”λͺ….컬럼λͺ…] ν˜•μ‹μœΌλ‘œ κ΅¬λΆ„ν•˜μ—¬ ν‘œν˜„
       

πŸ“– TABLE ALIAS : ν…Œμ΄λΈ”μ— μƒˆλ‘œμš΄ 이름을 μΌμ‹œμ μœΌλ‘œ λΆ€μ—¬ν•˜λŠ” κΈ°λŠ₯
SELECT κ²€μƒ‰λŒ€μƒ,... FROM ν…Œμ΄λΈ”λͺ… 별칭, ν…Œμ΄λΈ”λͺ… 별칭,...

  • ν…Œμ΄λΈ” κ²°ν•©μ‹œ ν…Œμ΄λΈ”μ˜ 이름을 κ°„λ‹¨ν•˜κ²Œ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜κ±°λ‚˜ ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ„ λ‹€μˆ˜μ˜ ν…Œμ΄λΈ”λ‘œ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©
    SELECT EMPNO,ENAME, E.DEPTNO,D.DEPTNO,SAL,DNAME,LOC FROM EMP E ,DEPT D WHERE D.DEPTNO= E.DEPTNO ;

πŸ“˜ 비동등결합(NON - EQUI JOIN) : λ‘κ°œ μ΄μƒμ˜ ν…Œμ΄λΈ”μ—μ„œ 결합쑰건에 = μ—°μ‚°μžκ°€ μ•„λ‹Œ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ 참인 행을 κ²°ν•©ν•˜μ—¬ 검색

πŸ“˜ μ™ΈλΆ€κ²°ν•©(OUTER JOIN) : 결합쑰건이 참인 ν–‰λ§Œ κ²°ν•©ν•˜λŠ” 것이 μ•„λ‹ˆλΌ 결합쑰건이 λ§žμ§€ μ•ŠλŠ” 행도 NULLκ³Ό κ²°ν•©ν•˜μ—¬ 검색

> 결합쑰건
: κ²°ν•© ν…Œμ΄λΈ”μ— (+)λ₯Ό μ‚¬μš©ν•˜λ©΄ 결합쑰건이 λ§žμ§€ μ•ŠλŠ” 행을 NULLκ³Ό κ²°ν•©ν•˜μ—¬ 검색
SELECT EMPNO,ENAME,SAL,DNAME,LOC FROM EMP,DEPT WHERE EMP.DEPTNO (+)= DEPT.DEPTNO;

πŸ“˜ μžκΈ°κ²°ν•©(SELF JOIN) : ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ— μ„œλ‘œλ‹€λ₯Έ 별칭을 λΆ€μ—¬ν•˜μ—¬ λ‹€λ₯Έ ν…Œμ΄λΈ”λ‘œ μ„€μ •ν•΄ 행을 κ²°ν•©ν•˜μ—¬ 검색

> κ²€μƒ‰λŒ€μƒμ— λ°˜λ“œμ‹œ ν…Œμ΄λΈ” λ³„μΉ­μœΌλ‘œ ν…Œμ΄λΈ”μ„ κ΅¬λΆ„ν•˜μ—¬ μ»¬λŸΌκ°’ 검색
EX)) SELECT W.ENAME, M.ENAME FROM EMP W JOIN EMP M ON W.MGR=M.EMPNO;

πŸ’‘ κΈ°μ‘΄ ν…Œμ΄λΈ”μ˜ 결합은 ν…Œμ΄λΈ”μ˜ 결합쑰건과 ν–‰μ˜ 검색쑰건을 WHEREμ—μ„œ 같이 μ‚¬μš©ν•˜λ―€λ‘œ μœ μ§€λ³΄μˆ˜μ˜ λΆˆνŽΈν•¨ 쑴재

πŸ“˜ CROSS JOIN : κ²°ν•© ν…Œμ΄λΈ”μ˜ λͺ¨λ“  행을 ꡐ차 κ²°ν•©ν•˜μ—¬ 검색 - 결합쑰건 μƒλž΅

SELECT κ²€μƒ‰λŒ€μƒ,... FROM ν…Œμ΄λΈ”λͺ…1 CROSS JOIN ν…Œμ΄λΈ”λͺ…2

πŸ“˜ NATURAL JOIN : κ²°ν•©ν…Œμ΄λΈ”μ— 같은 μ΄λ¦„μ˜ 컬럼이 ν•˜λ‚˜λ§Œ μžˆλŠ” 경우 같은 μ΄λ¦„μ˜ μ»¬λŸΌκ°’μ˜ 행을 μ„œλ‘œ κ²°ν•©ν•˜μ—¬ κ²°ν•©

SELECT κ²€μƒ‰λŒ€μƒ,... FROM ν…Œμ΄λΈ”λͺ…1 NATURAL JOIN ν…Œμ΄λΈ”λͺ…2
- NATURAL JOIN을 μ‚¬μš©ν•  경우 κ²€μƒ‰λŒ€μƒμ— λ™μΌν•œ 컬럼λͺ…을 검색할 λ•Œ ν…Œμ΄λΈ”μ„ λͺ…μ‹œν•˜μ§€ μ•Šμ•„λ„ 검색 κ°€λŠ₯

πŸ“˜ JOIN USING : κ²°ν•© ν…Œμ΄λΈ”μ— 같은 μ΄λ¦„μ˜ 컬럼이 μ—¬λŸ¬κ°œ μžˆλŠ” 경우 νŠΉμ • μ»¬λŸΌμ— μ €μž₯된 컬럼 값이 같은 행을 μ„œλ‘œ κ²°ν•©ν•˜μ—¬ 검색

SELECT κ²€μƒ‰λŒ€μƒ, ... FROM ν…Œμ΄λΈ”λͺ…1 JOIN ν…Œμ΄λΈ”λͺ…2 컬럼λͺ…

πŸ“˜ INNER JOIN : κ²°ν•©ν…Œμ΄λΈ”μ˜ 결합쑰건이 λ§žλŠ” 행을 κ²°ν•©ν•˜μ—¬ 검색

SELECT κ²€μƒ‰λŒ€μƒ,... FROM ν…Œμ΄λΈ”λͺ…1 INNER JOIN ν…Œμ΄λΈ”λͺ…2 ON  결합쑰건 

πŸ“˜ OUTER JOIN : 결합쑰건을 λͺ…μ‹œν•˜μ—¬ κ²°ν•© ν…Œμ΄λΈ”μ—μ„œ 결합쑰건이 λ§žλŠ” ν–‰λ§Œ κ²°ν•©ν•˜μ—¬ κ²€μƒ‰ν•˜λŠ”κ²ƒμ΄ μ•„λ‹ˆλΌ 결합쑰건이 λ§žμ§€ μ•ŠλŠ” 경우 NULL κ³Ό κ²°ν•©ν•˜μ—¬ 검색

SELECT κ²€μƒ‰λŒ€μƒ,... FROM ν…Œμ΄λΈ”λͺ…1 {LEFT|RIGHT|FULL} OUTER JOIN ν…Œμ΄λΈ”λͺ…2 ON  결합쑰건 
LEFT OUTER JOIN: μ™Όμͺ½ν…Œμ΄λΈ”μ˜ λͺ¨λ“  행을 κ²€μƒ‰ν•˜κ³  였λ₯Έμͺ½ν…Œμ΄λΈ”은 결합쑰건이 λ§žλŠ” 행이 μ—†λŠ” 경우 NULLκ³Ό κ²°ν•©ν•˜μ—¬ 검색

RIGHT OUTER JOIN: 였λ₯Έμͺ½ν…Œμ΄λΈ”μ˜ λͺ¨λ“  행을 κ²€μƒ‰ν•˜κ³  μ™Όμͺ½ν…Œμ΄λΈ”은 결합쑰건이 λ§žλŠ” 행이 μ—†λŠ” 경우 NULLκ³Ό κ²°ν•©ν•˜μ—¬ 검색

FULL OUTER JOIN : λͺ¨λ“  ν…Œμ΄λΈ”μ˜ 행을 κ²°ν•©ν•˜μ—¬ κ²€μƒ‰ν•˜κ³  결합쑰건이 λ§žλŠ” 행이 μ—†λŠ” 경우 NULLκ³Ό κ²°ν•©ν•˜μ—¬ 검색

0개의 λŒ“κΈ€