Join
종류
Join | 특징 |
Inner join | 같은 것 끼리만 연결 |
Outer join | 한쪽을 기준(모두 포함)해서 연결(left join, right join) |
full join | 왼쪽, 오른쪽 모두 포함 |
self join | 자기 자신 테이블과 연결 |
cross join | 모든 경우의 수로 연결 |
non equijoin | 범위에 속하는지 여부를 확인 |
n개 테이블 조인 | 여러 개의 테이블 조인 |
Inner join : 같은 것 끼리만 연결
오라클 전용구문
select 테이블1.컬럼1, 테이블2.컬럼2 from 테이블1, 테이블2 where 테이블1.일치컬럼 = 테이블2.일치컬럼
select a.컬럼1, b.컬럼2 from 테이블1 a, 테이블2 b where a.일치컬럼 = b.일치컬럼
Ansi표준
select 컬럼1, 컬럼2 from 테이블1 join 테이블2 using(일치컬럼)
outer join : 한쪽을 기준(모두 포함)해서 연결(left join, right join)
right join
오라클 전용구문
select 테이블1.컬럼1, 테이블2.컬럼2 from 테이블1, 테이블2 where 테이블1.일치컬럼(+) = 테이블2.일치컬럼
select a.컬럼1, b.컬럼2 from 테이블1 a, 테이블2 b where a.일치컬럼(+) = b.일치컬럼
Ansi표준
select 컬럼1, 컬럼2 from 테이블1 right join 테이블2 using(일치컬럼)
left join
오라클 전용구문
select 테이블1.컬럼1, 테이블2.컬럼2 from 테이블1, 테이블2 where 테이블1.일치컬럼 = 테이블2.일치컬럼(+)
select a.컬럼1, b.컬럼2 from 테이블1 a, 테이블2 b where a.일치컬럼 = b.일치컬럼(+)
Ansi표준
select 컬럼1, 컬럼2 from 테이블1 left join 테이블2 using(일치컬럼)
full join
오라클 전용 구문은 없다.
Ansi표준
select 컬럼1, 컬럼2 from 테이블1 full join 테이블2 using(일치컬럼)
self join : 자기 자신 테이블과 연결
cross join : 모든 행에 대해 가능한 모든 조합을 생성하는 조인
오라클 전용구문
select * from countries, locations;
Ansi표준
select * from countries cross join locations;
Non Equijoin : 컬럼값이 같은 경우가 아닌 범위에 속하는지 여부를 확인 할 때
on( 컬럼명 between 컬럼명1 and 컬럼명2)
ex)
salgrade 테이블
SALVEL | LOWST | HIGHST |
A | 20000 | 29999 |
B | 10000 | 19999 |
C | 0 | 9999 |
select last_name, salary, salvel
from employees join salgrade
on(salary between lowst and heighst)
order by salary desc;
on(salary between lowst and heighst)
=> salary 컬럼의 값이 lowst 컬럼과 heighst 컬럼 사이에 속해있는 값을 찾는다.
예를 들어,
salary = 15000 일 때, SALVEL = B이다.
왜냐하면 salary의 값이 10000( Lowst ) ~19999 ( Highst ) 사이에 있기 때문이다.
테이블 복사
create table 테이블 as select * from 원본테이블
'Database > Oracle' 카테고리의 다른 글
Oracle, 테이블 생성 / 삽입, 삭제, 수정 / 복사 / 시퀀스 (0) | 2024.08.20 |
---|---|
Oracle, [SET operator] - 집합연산자, 하위질의 (SubQuery) (0) | 2024.08.20 |
Oracle, 현재 날짜 구하기(Sysdate, to_char) / 달 수 더하기 / 마지막 날 구하기 (0) | 2024.08.19 |
Oracle, 숫자 변형(소문자, 나머지, 반올림, 내림) / 문자열 변형(찾기, 추출, 결합. 공백 제거) (0) | 2024.08.19 |
Oracle, Java - Oracle 연동 방법 (0) | 2024.08.12 |