안녕하세요 이승혁입니다.
이번 포스팅은 JOIN 문법 2번째 포스팅 1999 ansi join 문법을 포스팅 하겠습니다.
※ 조인 2가지
1. 오라클 조인 : 현업에서 많이 사용해서 중요하다.
- equi 조인
- non eqi 조인
- oter joinself join
2. 1999 ansi 조인
- on 절을 사용한 조인 문법
- cross 조인
ㆍ 1999 ansi join - on 절을 사용한 조인 문법
예제 ) select ename, d.loc
from emp e, dept d -> from emp e join dept d
on ( e.deptno = d.deptno ) ;
where d.loc ='DALLAS';
select e.ename, d.loc
from emp e join dept d -- from emp e, dept d
on ( e.deptno = d.deptno ) -- where e.deptno = d.deptno and d.loc='DALLAS';
where d.loc='DALLAS';
: 검색 조건을 where 절에 사용, 조인 조건은 따로 사용하는게 on 절의 목적
실습 1. 급여등급(grade)가 5등급인 사원들의 이름, 월급, 급여등급을 출력해보기
답 : select e.ename, e.sal , s.grade
from emp e join salgrade s
on (e.sal between s.losal and s.hisal);
where grade=5;
select e.ename, e.sal , s.grade
from emp e join salgrade s
on (e.sal between s.losal and s.hisal)
where grade=5;
실습 2. 직업이 SALESMAN, ANALYST인 사원들의 이름, 직업, 부서위치를 on 절 사용한 join 문법으로 구현해보기
답 : select e.ename, e.job, d.loc
from emp e join dept d
on (e.deptno = d.deptno)
where e.job = 'SALESMAN' or e.job='ANALYST';
select e.ename, e.job, d.loc
from emp e join dept d
on (e.deptno = d.deptno)
where e.job = 'SALESMAN' or e.job='ANALYST';
ㆍ1999 ansi join - using 절을 사용한 조인
select e.ename, d.loc
from emp e join dept d
using (deptno);
※ 설명 : 연결고리가 되는 컬럼명을 테이블 별칭 없이 괄호 안에 적어주면 된다.
실습 3. ansi join , using절 , 직업이 SALESMAN 인 사원들의 이름, 월급, 직업, 부서위치 using 절을 사용해 출력해보기
select e.ename, e.sal, e.job, d.loc
from emp e join dept d
using( deptno )
where e.job = 'SALESMAN';
※ natural join
select e.ename, d.loc
from emp e natural join dept d;
※ left/right/full outer join
예제 : Oracle 조인 문법 vs 1999 ansi 조인 문법
select e.ename, d.loc select e.ename, d.loc
from emp e, dept d from emp e right outer join dept d
where e.deptno(+) = d.deptno; on( e.deptno=d.deptno )
select e.ename, d.loc select e.ename, d.loc
from emp e, dept d from emp e left outer join dept d
where e.deptno= d.deptno(+) ; on( e.deptno=d.deptno );
select e.ename, d.loc
x from emp e full outer join dept d
on( e.deptno=d.deptno );
실습 4. on 절 사용해보기, 직업 SALESMAN이고 월급이 1200이상인 사원들의 이름, 월급, 직업, 부서위치를 출력해보기
select e.ename, e.sal, e.job, d.loc
from emp e join dept d
on (e.deptno=d.deptno)
where e.sal >=1200 and e.job='SALESMAN';
select e.ename, e.sal, e.job, d.loc
from emp e join dept d
on (e.deptno=d.deptno)
where e.sal >=1200 and e.job='SALESMAN';
※ cross 조인
equi join에 조인 조건이 없는 조인과 같습니다.
emp 14개 행 x dept 4개 행 = 56개 행 인출
select e.ename, d.loc
from emp e, dept d; -- = from emp e cross join dept d;
이번 포스팅은 여기서 마치겠습니다.
감사합니다.
SQLD 자격증 화이팅
'프로그래밍 > SQL' 카테고리의 다른 글
SQL-16) exist , with , 계층형 질의 : SQl, SQLD 자격증, ADsP, 함수 (0) | 2020.11.05 |
---|---|
SQL-15)집합연산자 - UNION, UNION ALL, INTERSECT, MINUS : sqld, sqld 자격증 (0) | 2020.11.05 |
SQL-14 ) 서브쿼리(Sub Query) - 2 : SQL, SQLD, SQLD자격증, 서브 쿼리, 오라클 (0) | 2020.11.05 |
SQL-13) 서브 쿼리(Sub Query) : SQL문, SQLD, SQLD 자격증, DB , database (0) | 2020.10.30 |
SQL-11) JOIN 문법 - 1 (오라클 조인 문법) (0) | 2020.10.28 |
SQL-10) 데이터 분석 함수 (0) | 2020.10.27 |
SQL-9) group by, having , 함수(function) - 5 (0) | 2020.10.27 |
SQL-8) 함수(function) - 4 (2) | 2020.10.26 |