티스토리 뷰

DB/Oracle

SQL 활용 5. JOIN

쟌쥰 2019. 12. 4. 19:17

JOIN?

테이블과 테이블을 연결하는 구문

 

종류

  • INNER JOIN
  • CROSS JOIN
  • OUTER JOIN
    • LEFT OUTER JOIN
    • RIGHT OUTER JOIN
    • FULL OUTER JOIN
  • NONEQUI JOIN
  • SELF JOIN

그림을 먼저 보시면 JOIN 구문에 대한 이해가 빠를것 같습니다.

 

단 아래 예제에서는 EMPLOYEE 와 DEPARTMENT 테이블을 사용하지 않고 새로운 테이블을 생성해 작업해 보도록 하겠습니다.

 

테이블 생성

DROP TABLE X,S,M;
CREATE TABLE M(
	M1 CHAR(6),
	M2 VARCHAR(10)
);
CREATE TABLE S(
	S1 CHAR(6),
	S2 VARCHAR(10)
);
CREATE TABLE X(
	X1 CHAR(6),
	X2 VARCHAR(10)
);

INSERT INTO M VALUES('A','1');
INSERT INTO M VALUES('B','1');
INSERT INTO M VALUES('C','3');
INSERT INTO M VALUES(NULL, '3');

INSERT INTO S VALUES('A','X');
INSERT INTO S VALUES('B','Y');
INSERT INTO S VALUES(NULL, 'Z');

INSERT INTO X VALUES('A','DATA');
COMMIT;

SELECT * FROM M;
SELECT * FROM S;
SELECT * FROM X;

 


INNER JOIN

SELECT * 
FROM M INNER JOIN S 
ON M1 = S1;
-- ==
SELECT * 
FROM M, S 
WHERE M1 = S1;

 

CROSS JOIN

SELECT * 
FROM M CROSS JOIN S;

 

OUTER JOIN

LEFT OUTER JOIN

SELECT *
FROM M LEFT OUTER JOIN S
ON M1 = S1;
--==
SELECT *
FROM M, S 
WHERE M1 = S1(+);

 

RIGHT OUTER JOIN

SELECT *
FROM M RIGHT OUTER JOIN S
ON M1 = S1;
--==
SELECT *
FROM M, S 
WHERE M1(+) = S1;

 

FULL OUTER JOIN

SELECT *
FROM M FULL OUTER JOIN S
ON M1 = S1;

NONEQUI JOIN

  • 테이블의 어떤 컬럼도 JOIN할 테이블의 컬럼과 일치하지 않을 때 사용!
SELECT ENAME, SAL, GRADE
FROM EMP JOIN SALGRADE 
ON (SAL BETWEEN LOSAL AND HISAL);
--==
SELECT E.ENAME, E.SAL, S.GRADE
FROM EMP E, SALGRADE S
WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL;

 

SELF JOIN

Q1) 모든 사원의 사번, 이름, 관리자의 사번, 관리자의 이름을 출력하자.

SELECT 사원.EMPNO, 사원.ENAME, 관리자.EMPNO, 관리자.ENAME
FROM EMP 사원, EMP 관리자
WHERE 사원.MGR = 관리자.EMPNO;

'DB > Oracle' 카테고리의 다른 글

SQL 활용 4. SUBQUERY  (0) 2019.12.03
SQL 활용 3. 다중 행 함수  (0) 2019.11.29
SLQ 활용 2. 단일 행 함수  (0) 2019.11.29
SQL 활용 1. 중첩 함수  (0) 2019.11.29
SQL 기초 4. CONSTRAINT (제약조건)  (0) 2019.11.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함