- Join
- 관계형 데이터베이스의 핵심 기능
- 여러 테이블에 분산되어있는 자료를 조회하는 방식
- 조인에 참여하는 테이블들은 반드시 관계가 존재해야 함
- 테이블 개수가 N개일 때 관계 조건은 적어도 N-1개 이상이 되어야 한다
- 일반 조인 / ANSI 조인, 내부 조인 / 외부 조인으로 구분
- 조인 조건 구성에 사용되는 연산자에 따라 동등 조인 / 비 동등 조인으로 구분
- 내부 조인(INNER JOIN)
- 각 DBMS회사에서 자사 DBMS에 최적화되도록 구성한 문법
- CARTESIAN PRODUCT
- 조인 조건이 없거나 조인 조건을 잘못 기술했을 때 발생
- 꼭 필요한 경우가 아니면 사용하지 않는 것이 좋다
- ANSI의 CROSS JOIN에 해당한다
- EQUI-JOIN(동등 조인)
- 일반 내부 JOIN
-
SELECT [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭], [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭], : : FROM 테이블 명[별칭], 테이블 명[별칭], ... WHERE 조인 조건 [AND 일반 조건] [GROUP BY 컬럼명, [컬럼명, ...]] [HAVING 조건] [ORDER BY 컬럼명 | 컬럼 인덱스 [ASC | DESC]]
- ANSI INNER JOIN
-
SELECT [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭], [테이블명 | 테이블 별칭]컬럼 명 [AS 컬럼 별칭], : : FROM 테이블 명[별칭] INNER JOIN 테이블명[별칭] ON(조인조건 [AND 일반조건]) WHERE 조인 조건 [AND 일반 조건] [GROUP BY 컬럼명, [컬럼명, ...]] [HAVING 조건] [ORDER BY 컬럼명 | 컬럼 인덱스 [ASC | DESC]]
- INNER JOIN의 경우 이렇게 두 가지 방법으로 사용이 가능하다
- NON-EQUI-JOIN(비 동등 조인)
- 조인 조건에 =연산자 이외의 연산자가 사용되는 조인
- EXISTS, IN, ANY, SOME 등이 주로 사용된다
- EXISTS(서브 쿼리)
- TRUE / FALSE 반환
- 무조건 서브 쿼리가 들어가야 되며 하나의 행이라도 존재하면 TRUE 아니면 FALSE
- WHERE절에 사용
- EXISTS(서브 쿼리)
- CARTESIAN PRODUCT
- 각 DBMS회사에서 자사 DBMS에 최적화되도록 구성한 문법
'DataBase > Oracle' 카테고리의 다른 글
16. 서브쿼리 (0) | 2021.07.24 |
---|---|
15. Join - 외부조인 (0) | 2021.07.24 |
13. Function - NULL 처리 함수 (0) | 2021.07.24 |
12. Function - 집계함수 (0) | 2021.07.24 |
11. Function - 변환함수 (0) | 2021.07.24 |