ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL_Inner Join(Equi Join) & 테이블 별칭 부여
    Data Base_Oracle/SQL 2020. 1. 6. 22:01

    Inner Join

    • 검색하고자 하는 두 테이블의 레코드 총량이 비슷할 때 사용
    • 두 테이블간의 교집합을 찾는 것
    종류 설명
    Equi Join 연관된 테이블에 동일한 칼럼이 있을 때 사용
    Self Join 자기 자신의 table 내의 필드를 참조해서 데이터를 조회할 때 사용

    Equi Join

    동등 Join이라고 하며, 동일한 칼럼을 기준으로 데이터를 조회할 때 사용
    where조건식에서 = 연산자를 사용함

    § 형식

    [ SQL> select 필드명, 필드명2, 테이블명.필드명,,,,
    from 테이블명, 테이블명2,,,,
    where 조건식 ]
    ※ where 조건식으로 중복된 데이터를 배제

    # 예제

    ▷ ALLEN의 사원번호, 이름, 부서번호, 부서이름, 부서위치 조회
    부서번호가 같은 값을 조회해서 중복된 데이터를 배제

    ▶ [ SQL> select empno, ename, emp.deptno, dname, loc from emp, dept
    where emp.deptno=dept.deptno and ename='ALLEN'; ]

    EMPNO ENAME DEPTNO DNAME LOC
    7499 ALLEN 30 SALES CHICAGO

    ※ emp테이블의 deptno와 dept테이블의 deptno가 같은 ALLEN의 데이터만 조회


    Join에서 Table에 별칭을 부여하는 경우 _ 튜닝

    튜닝 기법 중 하나로 검색 속도를 향상시킴

    전제 조건

    저장된 테이블의 레코드 수가 굉장히 많을 때
    ex) 10,000 건 이상

    § 형식

    [ SQL> select 필드명, 필드명2, 별칭.필드명,,,,
    from 테이블명 별칭, 테이블명2 별칭2,,,,
    where 조건식 ]

    # 예제

    ▷ ALLEN의 사원번호, 이름, 부서번호, 부서이름, 부서위치 조회
    부서번호가 같은 값을 조회해서 중복된 데이터를 배제

     

    ▶ [ SQL> select e.empno, e.ename, e.deptno, d.dname, d.loc from emp e, dept d where e.deptno=d.deptno and e.ename='ALLEN'; ]

    EMPNO ENAME DEPTNO DNAME LOC
    7499 ALLEN 30 SALES CHICAGO

    ※ 예제에서는 데이터가 많지 않기 때문에 큰 차이는 없음
    ※ 두 테이블의 공통 필드 외에는 필드명 앞에 테이블명을 생략해도 됨


    Inner Join은 Join에서 가장 많이 사용되며, 그 중에서도 Equi Join이 대부분의 비중을 차지하고 있기 때문에

    Equi Join에 대해 확실히 아는 것은 중요하다고 할 수 있습니다.

    Join을 할 때 테이블에 별칭을 부여하면 보다 편리하게 데이터를 조회하는 것이 가능합니다.

    'Data Base_Oracle > SQL' 카테고리의 다른 글

    SQL_Non-Equi Join & Outer Join  (0) 2020.01.06
    SQL_Equi Join & Self Join  (0) 2020.01.06
    SQL_Join 개요 & Cross Join  (0) 2020.01.06
    SQL_Constraint Enable / Disable  (0) 2020.01.06
    SQL 제약조건 Foreign Key  (0) 2020.01.04

    댓글

Designed by Tistory.