10.JOIN 문 (INNER, OUTER 2가지 종류가 있음)
10-1. INNER JOIN
두 개 이상의 테이블로부터 자료를 검색하기 위해서 join을 사용
일반적으로 primary key와 foreign key을 사용하여 join 하는 경우가 대부분
자바의 상속관계같은 개념임
**PK(primary key) 이게 부모역할 , 중복 안되고 NULL값이 들어가면 안됨, 테이블 하나에 무조건 하나씩 있어야 함.
FK(foreign key) 이건 자식역할
[PK와 FK]
컬럼의 종류에는 PK(primary key),FK(foreign key)가 존재하는데, PK는 해당 테이블에 정렬 기준이 되는 컬럼이라
그 컬럼 안에는 중복되는 데이터를 저장할 수 없다. 예를들면 회원 아이디와 이름을 받는데 회원 아이디는 회원을 구분하는
기준이 되기 때문에 중복해서 사용할 수 없는 것과마찬가지다 ! 이때 회원아이디축 즉 회원아이디 컬럼을 PK라고 하는 것
반대로 회원 이름이 되는 컬럼이 바로 FK가 된다! 회원이름에는 동명이인이 존재할 수 있으니까!
이렇기에 한 테이블 안에는 하나의 PK , 다수의 FK가 존재하는 구조를 가지고 있다.
[테이블에서의 부모자식관계]
우선 테이블끼리도 부모자식의 관계가 있음!!
예를들어
EMP (자식테이블)
여기엔 부서사람들의 이름, 연봉,입사일,부서 번호 등등이 컬럼이 되는 정보가 들어있음
DEPT (부모테이블)
여기엔 EMP중에서도 부서번호에 대한 더 자세한 정보가 들어있음
부서번호를 기준으로 해서 부서번호에 해당하는 부서명등이 들어있는 테이블!
학원에서 배운거랑 인터넷에서 검색해서 본 거랑 짬뽕되서 엄청 혼돈이 오고 있는데
걍 JOIN할 컬럼이 PK로 가지고 있는 테이블을 부모테이블
FK로 가지고 있는 테이블을 자식테이블이라고 생각하고!!
기준테이블이 자식테이블
조인되는 테이블이 부모테이블
INNER JOIN은 "자식테이블(FK가 있는 테이블)을 기준" 으로 모든 데이타를 가져온다.
예를들면 자식테이블에 전체 레코드가 10개이면 INNER JOIN한 결과의 레코드 수는 10개
SELECT ENAME,SAL,E.DEPTNO,DNAME =>DEPTNO는 자식이나 부모나 동일하게 가지고 있는 키라 아무거나 가져와도 됨
FROM EMP E (자식테이블, 기준테이블) => E 이렇게 별칭 부여 가능!
[INNER] jOIN DEPT D
(부모테이블,조인테이블) ON E.DEPTNO = D.DEPTNO ;

테이블명 as 별칭[x]:as는 사용불가
테이블 별칭 부여 한 형식은
SELECT 테이블1의컬럼, .테이블2의컬럼, .... (출력하고싶은거 아무거나)
From 자식테이블1 별칭1
[INNER] JOIN 부모테이블2 별칭2 ON 별칭1.조인컬럼명 = 별칭2.조인컬럼명 ;
'학원 > DB(오라클),SQL문' 카테고리의 다른 글
10/17 22-2 쿼리 (0) | 2022.10.17 |
---|---|
10/17 22-1 JOIN (0) | 2022.10.17 |
10/14 21-1 오라클 시작 (1) | 2022.10.14 |
10.4 14-4 상속관계비교 (0) | 2022.10.04 |
10.4 14-3 inheritance(상속 Animal.ver) (1) | 2022.10.04 |