Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Numpy
- sklearn
- 파이썬
- seaborn
- 빅데이터 분석 기사
- 프로그래머스
- 실습
- Oracel
- SQL
- 실기
- R
- 카카오
- level 2
- 알고리즘
- 튜닝
- 데이터 분석
- pandas
- 머신러닝
- oracle
- matplotlib
- python3
- 빅분기
- 코딩테스트
- Python
- level 1
- Kaggle
- 오라클
Archives
- Today
- Total
라일락 꽃이 피는 날
[Oracle] 조인 - ANSI 조인 본문
728x90
1999 ANSI 조인 문법 (America National Standard Institute 미국 독립 표준 협회)
- on 절을 사용한 조인
- using 절을 사용한 조인
- natural 조인
- left/right/full outer 조인
- cross 조인
하둡, 스파크에서 수행하는 SQL들은 ANSI 문법으로 조인 문법을 작성해야 에러가 안 나고 수행되는 경우가 많다.
예제 1. DALLAS 에서 근무하는 사원들의 이름과 부서 위치를 출력
select e.ename, d.loc
from emp e join dept d
on (e.deptno = d.deptno)
where d.loc = 'DALLAS';
예제 2. 사원 이름, 월급, 부서 위치, 급여 등급(grade)을 출력
select e.ename, e.sal, d.loc, s.grade
from emp e join dept d
on (e.deptno = d.deptno)
join salgrade s
on (e.sal between s.losal and s.hisal);
예제 3. CHICAGO 에서 근무하는 사원들의 이름, 월급, 직업, 부서 위치를 출력
select e.ename, e.sal, e.job, d.loc
from emp e join dept d
using (deptno)
where d.loc = 'CHICAGO';
using 절에 e.deptno 또는 d.deptno 라고 하면 안 되고, 테이블 별칭 없이 deptno 만 써야 한다.
예제 4. 이름과 부서 위치를 출력
select e.ename, d.loc
from emp e natural join dept d;
natural join 을 사용하려면 조인하려는 두 테이블 사이에 연결 고리가 되는 같은 컬럼이 양쪽 테이블에 존재해야 한다.
공통된 컬럼이 없으면 조인을 제대로 하지 못한다.
예제 5. 이름과 부서 위치를 출력하는데, BOSTON이 출력되게 해서 BOSTON에는 사원이 없다는 것을 확인
select e.ename, d.loc
from emp e right outer join dept d
on (e.deptno = d.deptno);
오른쪽에 마치 아웃사이더처럼 하나 더 나와서 오른쪽(right) 아우터 조인을 사용한다.
예제 6. 이름이 jack 이거나 부서 위치가 BOSTON 인 사원들의 이름과 부서 위치를 출력
select e.ename, d.loc
from emp e full outer join dept d
on (e.deptno = d.deptno)
where e.ename = 'jack' or d.loc = 'BOSTON'
728x90
'프로그래밍 > Oracle' 카테고리의 다른 글
[Oracle] 단일행/다중행 서브 쿼리 (0) | 2022.06.02 |
---|---|
[Oracle] 집합 연산자 (0) | 2022.06.02 |
[Oracle] 테이블 정의서 (0) | 2022.06.01 |
[Oracle] 조인 - 오라클 조인 (0) | 2022.06.01 |
[Oracle] 출력되는 행 제한 (0) | 2022.05.31 |