쌍용 강북 교육센터 국비학원 Day 28일차
EQUI JOIN (등가 조인)
조인조건에 ' = ' 를 이용하는 조인을 보통 등가조인이라고 한다. 조인조건이 정확히 일치하는 경우에만 사용한다.
위의 예제는 서로 다른 테이블에서 department_id 값이 같은 행들끼리 연결지어 출력해준다.
(+) - department_id 값이 NULL 값이 존재할 경우 NULL값은 등가조인절에서는 출력되지 않는다. 그래서 출력하고 싶은 경우에는 위와 같이 (+)를 사용한다.등가조인을 사용할 때 두 테이블의 연결되어진 값이 있을 경우 조인조건절에서 한쪽 테이블을 명시 해줘야한다. (양쪽으로 사용 불가하다)
INNER JOIN
OUTER JOIN
여기서 OUTER 조인은 LEFT에 RIGHT, FULL 이 들어갈 수 있으며
RIGHT는 오른쪽에 선언된 테이블을, FULL은 양쪽에 모든 행의 데이터를 가져온 다음 조인조건절에 맞는 행을 출력한다.
조건절에 일치하지 않거나 존재하지 않는 데이터들은 모두 NULL값으로 처리한다.
INNER JOIN (내부조인)과 OUTER JOIN (외부조인)의 차이점
해당 테이블의 NULL 값의 유무로 INNER 와 OUTER를 결정한다.
외부조인을 사용하는 경우 - 이너 조인일때는 조건의 값이 하나라도 NULL 일 경우 검색결과로 나오지 않기 때문에 NULL이 있을경우 아우터 조인을 사용해야 한다.
WITH 절을 사용한 INLINE VIEW
with A as ( A구문 ) , B as ( B구문 ) select * from A join B on ( 조건절 )
NON-EQUI JOIN
조인조건절에 사용되는 컬럼의 값이 특정한 범위에 속할 때 사용하는 것이 NON-EQUI JOIN 이다. 여기에서는 조인조건절에 ' = ' 을 사용하는 것이 아니라 범위를 구하는 between A and B 를 사용한다.
예제로 연봉의 범위에 따라 각각의 세율이 측정되어있는 테이블을 만들고 employees 테이블과 합쳐 employee 들의 각각의 세액을 매기는 테이블이다.
SELF JOIN
자기자신의 테이블을 자기자신의 테이블과 JOIN 시키는 것을 말한다. 이때 반드시 테이블에 대한 alias 주어야 하고 이값은 서로 달리 주어서 실행해야 한다.
같은 employees 테이블을 이용해 E1, E2로 SELF JOIN을 한 예제이다. manager_id 를 연결해 다시 manager 의 정보를 출력한다.
※ select 문에서 distinct 와 order by 절을 함께 사용할때는 주의해야 한다.
select 문에서 distinct 와 order by 절을 함께 사용할때는 조심해야 한다. order by 절에는 select 문에서 사용된 컬럼만 들어올 수가 있다. 또는 order by 절을 사용하지 않아야 한다.
DISTINCT 키워드를 사용하여 데이터 중복을 제거할 때는 SELECT 문에 DISTINCT 키워드만 명시하면 된다.
하지만 select 문에 distinct 가 있는 경우 order by 절에는 select 문에서 사용된 컬럼만 들어올 수 있다. 그러므로 select 문에 distinct 가 있는 경우 order by 절을 사용하지 않도록 하는것이 좋다.
Multy Table JOIN
3개 이상의 테이블을 가지고 조인 시켜주는 것
오늘은 여기까지
+ 참고 - https://codingwone.tistory.com/29
'DB > Oracle' 카테고리의 다른 글
쌍용강북교육센터 국비 학원 Day 30일차 Oracle (Merge, DDL, Constraint, 제약조건) (0) | 2023.02.14 |
---|---|
쌍용강북교육센터 국비 학원 Day 29일차 Oracle (SET 연산자, UNION, PSEUDO Column, DML) (0) | 2023.02.13 |
쌍용강북교육센터 국비 학원 Day 27일차 Oracle (Sub Query, JOIN) (0) | 2023.02.09 |
쌍용강북교육센터 국비 학원 Day 26일차 Oracle (GROUP BY, HAVING, GROUPING, ROLLUP) (0) | 2023.02.08 |
쌍용강북교육센터 국비 학원 Day 25일차 Oracle (VIEW, 그룹함수) (0) | 2023.02.07 |