본문 바로가기

개발자노트/DBMS

[SQL] [오라클] JOIN 조인

JOIN 

- 여러개의 테이블 데이터들을 조합하여 출력

 

 

예제

CREATE TABLE TEST1(
   ID INT PRIMARY KEY,
   NAME VARCHAR(20) NOT NULL,
   NUM INT NOT NULL -- 외래키
);
INSERT INTO TEST1 VALUES(1,'티모',101);
INSERT INTO TEST1 VALUES(2,'아리',201);
INSERT INTO TEST1 VALUES(3,'세라핀',401);
INSERT INTO TEST1 VALUES(4,'모르가나',401);
INSERT INTO TEST1 VALUES(5,'미스포춘',301);
INSERT INTO TEST1 VALUES(6,'비에고',501);
INSERT INTO TEST1 VALUES(7,'아무무',501);
INSERT INTO TEST1 VALUES(8,'이즈리얼',301);
INSERT INTO TEST1 VALUES(9,'가렌',101);
INSERT INTO TEST1 VALUES(10,'애니',201);

 

CREATE TABLE TEST2(
   PID INT PRIMARY KEY,
   PNAME VARCHAR(20) NOT NULL
);
INSERT INTO TEST2 VALUES(101,'탑');
INSERT INTO TEST2 VALUES(201,'미드');
INSERT INTO TEST2 VALUES(301,'원딜');
INSERT INTO TEST2 VALUES(401,'서포터');
INSERT INTO TEST2 VALUES(501,'정글');

다른 두 테이블을 연결 시켜주는 포지션 넘버(외래키) 101,201,301,401,501

TEST1 table에서는 하나의 외래키이고,

TEST2 table에서는 그 table만의 고유키인 것이다.

SELECT * FROM TEST1;

SELECT NAME,PNAME FROM TEST1,TEST2 WHERE TEST1.NUM=TEST2.PID;
-- 다른 테이블의 정보를 가져올 때에는 반드시 해당 테이블의 PK를 가져와야함!
-- 이렇게 가져온 상대 테이블의 PK 컬럼을 외래키
-- TEST1에 있는 NUM과 TEST2에 있는 PID 가 같다라고 알려준다.
-- 이퀄 조인 EQUI JOIN
-- 조인 조건이 A.컬럼=B.컬럼

 

그렇다면 사용하는 이유는 ?

중복 제거, 유지보수 용이