join 함수
1. join 함수란?
- 두개 이상의 테이블을 연결해서 질의하는 것
2. 종류
- 데이타 추출되는 것에 따라
(1) Inner Join
- 조인을 위해 사용하는 비교 조건에 맞는 데이타만 조회
- ex. RGBMS master data & detail data
- empno있는 내부 데이터만 조회됨
- 조인 조건에 맞지 않은 데이타는 조회 되지 않는다.
- join할 때 outer join으로 표시 하지 않으면 기본적으로 Inner join으로 조회된다.
(2) Outer Join
- 조인을 위해 사용하는 비교 조건에 맞지 않는 데이타도 조회된다.
- 종류 left outer join : 비교 조건에 맞지 않은 왼쪽 테이블의 데이타도 조회됨 right outer join : 비교 조건에 맞지 않은 오른쪽 테이블의 데이타도 조회됨 full outer join : 비교 조건에 맞지 않은 양쪽 테이블의 모든 데이타가 조회됨
2. 비교 조건에 따라서
(1) Equi join
- 비교하는 두 컬럼의 데이타가 정확하게 일치할 경우
- join 조건으로 = 비교 연산자를 이용할 경우
(2) Non Equi join
- 비교하는 두 컬럼의 데이타가 정확하게 일치하지 경우
- join 조건으로 >, < , >= , <=, != 등
3. 비교 테이블에 따라서
self join
- join할 테이블이 다른 테이블이 아닌 self(한개의 테이블로 join)
- 테이블을 구별하기 위해 반드시 alias를 사용해야 한다.
4. Natural join
- 두 테이블에서 동일한 컬럼명을 갖는 컬럼을 조인 조건으로 사용한다.
- inner join과 같은 결과를 갖는다.
5. 카티시안 곱
- 조인 조건을 생략했을 때 두 테이블의 모든 row를 연결한 결과가 조회된다.
- N * M의 수만큼 행이 조회된다.
select gno, brand, price, goods.cno as cno
, category.cno as 분류번호 , name
from goods, category;
3. inner join
- DB 벤더 전용 select [distinct] *|컬럼명 [as alias]
from 테이블명 [alias], 테이블명 [alias] ,
[where 조건]
[group by 컬럼명, .. [having 조건]]
[order by 컬럼명 [asc|desc]], ...] - ANSI query select [distinct] *|컬럼명 [as alias]
from 테이블명 [alias]
join 테이블명 [alias]
on 조인 조건 | using(조인 컬럼) ,...
[where 조건] [group by 컬럼명, ..
[having 조건]] [order by 컬럼명 [asc|desc]], ...] - using
- 조인을 위한 비교 컬럼명이 동일 할 때 사용
- alias 없이 사용해야 한다. => alias를 사용할 경우 error발생
- 비교 조건은 기본적으로 = 이 적용된다.
- on(where랑 똑같은 기능)
- 조인을 위한 비교 컬럼명이 다르거나 비교 조건이 = 이 아닐때 사용한다.
- 조인을 위한 비교 컬럼이 같을 경우 alias를 사용해서 구분한다.
-- 상품번호, 상품명, 상품금액, 카테고리번호, 카네고리이름을 조회한다.
-- inner join 벤더 전용
select gno, brand, price, goods.cno, name
from goods, category
where goods.cno = category.cno
order by gno;
-- 테이블에 alias를 적용
select gno, brand, price, goods.cno, name
from goods g, category c -- alias는 내 마음속에서 알파벳 정의, goods = cno = g
where g.cno = c.cno
order by gno;
- index는 바이너리 트리 구조를 가짐
4. outer join
- left join select [distinct] *|컬럼명 [as alias]
from 테이블명 [alias] left [outer]
join 테이블명 [alias]
on 조인 조건 |
using(조인 컬럼) - right join select [distinct] *|컬럼명 [as alias]
from 테이블명 [alias] right [outer]
join 테이블명 [alias]
on 조인 조건 |
using(조인 컬럼) - self join
- 한개의 테이블로 join
- 테이블에 alias를 이용해서 구별한다.
'LG 유레카 2기_프론트엔드' 카테고리의 다른 글
| [ GITHUB ] Repository 설정 및 PR 실습 예제 (0) | 2025.03.12 |
|---|---|
| [ GITHUB ] 비전공자도 이해할 수 있는 GitHub 핵심 과정 8가지 (1) | 2025.03.11 |
| [ DB ] mybatis, Dao (1) | 2025.03.10 |
| [ DB ] DML문 (0) | 2025.03.04 |
| [ DB ] 기초 (0) | 2025.02.27 |