-
SQL_Ansi JoinData Base_Oracle/SQL 2020. 1. 6. 22:30
Ansi Join
Ansi SQL
전세계 표준 SQL
Oracle 뿐만 아니라 다른 DB에서도 사용할 수 있는 SQLAnsi Inner Join
§ 형식
[ SQL> select 필드명1, 필드명2,,,,
from 테이블명1 inner join 테이블명2
on 테이블명1.필드명 = 테이블명2.필드명; ]
※ inner는 생략가능하며, join만 써도 inner join으로 기능※ join하는 필드명이 같을 경우
형식) using(공통 필드명)※ 테이블에 별칭을 줄 수 있음
# 예제
▷ emp테이블에서 사원번호, 이름 출력
dept테이블에서 부서이름 출력
emp테이블의 사원번호와 dept테이블의 사원번호가 같은 데이터만 조회▶ { on절 }
[ SQL> select empno, ename, dname
from emp e inner join dept d // emp, dept
on e.deptno=d.deptno; ] // where emp.deptno=dept.deptno▶ { using절 }
[ SQL> select empno, ename, dname from emp inner join dept using(deptno); ]EMPNO ENAME DNAME 7369 SMITH RESEARCH 7499 ALLEN SALES 7521 WARD SALES ... ... ... Ansi Outer Join
종류 설명 Left Outer Join 조회하려는 레코드양이 왼쪽 테이블에 더 많을 때 사용 Right Outer Join 조회하려는 레코드양이 오른쪽 테이블에 더 많을 때 사용 Full Outer Join 위의 두 Outer Join을 합친 형태라고 할 수 있음 § 형식
[ SQL> select 필드명1, 필드명2,,,
from 테이블명1 별칭1 left / right outer join 테이블명2 별칭2
on 테이블명1.필드명=테이블명2.필드명; ]
※ Ansi Outer Join은 데이터를 더 조회하려는 테이블 쪽에
left / right 를 명시해야 하고 (+)를 쓰지 않음# 예제
▷ emp, dept 테이블을 Join해서 ename, job, deptno, dname 출력
단, dept테이블의 40번부서까지 다 출력이 되도록 작성▶ [ SQL> select e.ename, e.job, d.deptno, d.dname
from emp e right outer join dept d
on e.deptno=d.deptno; ]ENAME JOB DEPTNO DNAME SMITH CLERK 20 RESEARCH ALLEN SALESMAN 30 SALES ... ... ... ... 40 OPERATIONS
표준 SQL인 Ansi의 Inner Join과 Outer Join에 대해 알아보았습니다.
Ansi는 국제표준이기 오라클에서는 물론이고 다른 SQL 툴에서도 사용할 수 있습니다.
'Data Base_Oracle > SQL' 카테고리의 다른 글
SQL_Sub Query에서 그룹함수 사용 (0) 2020.01.07 SQL_Sub Query 개요 & 단일 행 Sub Query (0) 2020.01.07 SQL_Non-Equi Join & Outer Join (0) 2020.01.06 SQL_Equi Join & Self Join (0) 2020.01.06 SQL_Inner Join(Equi Join) & 테이블 별칭 부여 (0) 2020.01.06