[SQL] 데이터 조인 - EQUI JOIN

·2025년 7월 7일

SQL

목록 보기
73/126

💡 오라클의 조인 문법 4가지

  1. equi join : 조인 하려는 테이블 사이의 조인조건이 이퀄 조건인 경우의 조인
  2. non equi join : 조인하려는 테이블 사이의 조인조건이 이퀄 조건이 아닌 경우
  3. outer join : equi 조인으로는 볼 수 없는 결과를 볼 때 사용하는 조인
  4. self join : 자기 자신과 조인하는 조인 문법

🔸 조인되는 과정

예제 답

select ename, loc
 from emp e, dept d
 where e.deptno = d.deptno;
  • where e.deptno = d.deptno;
    : 조인 조건 (조인 연결고리)

문제1. 위의 결과를 다시 출력하는데 부서번호도 같이 출력하시오

select ename, loc, e.deptno
 from emp e, dept d
 where e.deptno = d.deptno;
  • 여기서 select절에 e.deptno가 아닌 deptno를 쓰면 에러발생
    emp 테이블과 dept 테이블 둘 다 deptno가 있기 때문에 어느 테이블의 deptno를 가지고 올지 정의해줘야 됨
  • select절의 ename에도 e.ename, loc도 d.loc라고 써주면 성능이 좋아짐
    (ename은 emp테이블에만, loc는 dept테이블에만 있어서 안써줘도 괜찮지만 써주면 굿)
  • emp는 e로 변경되었기 때문에 계속 e로 코딩해줘야됨

문제2. emp 와 dept 를 조인해서 이름, 월급, 부서위치, 직업을 출력하시오

select e.ename, e.sal, d.loc, e.job
 from emp e, dept d
 where e.deptno = d.deptno;

문제3. 위의 결과를 다시 출력하는데 직업이 SALESMAN 만 출력하시오

select e.ename, e.sal, d.loc, e.job
 from emp e, dept d
 where e.deptno = d.deptno
   and job = 'SALESMAN';
  • 조인조건: e.deptno = d.deptno
  • 검색조건: job = 'SALESMAN'

💡 조인조건과 검색조건이 같이 있어야 함


문제4. 월급이 2500 이상인 사원들의 이름과 월급과 부서위치를 출력하시오

select e.ename, e.sal, d.loc
 from emp e, dept d
 where e.sal >= 2500
  and e.deptno = d.deptno;

문제5. 월급이 1000 에서 3000 사이인 사원들의 이름과 월급과 부서위치를 출력하시오

select e.ename, e.sal, d.loc
 from emp e, dept d
 where e.deptno = d.deptno and e.sal between 1000 and 3000;

문제6. 부서위치, 부서위치별 토탈월급을 출력하시오

select d.loc, sum(e.sal)
 from emp e, dept d
 where e.deptno = d.deptno
 group by d.loc;

문제7. 위의 결과를 다시 출력하는데 부서위치가 DALLAS 만 출력하시오

select d.loc, sum(e.sal)
 from emp  e, dept  d
 where  e.deptno = d.deptno and d.loc='DALLAS'
 group by d.loc;
 

0개의 댓글