-JOIN이란?
두 개 이상의 테이블들을 연결하여 데이터를 검색하는 것을 JOIN 이라고 합니다.
JOIN 시 사용되는 JOIN 연산자에 따라서 EQUI JOIN과 NON EQUI JOIN 으로 구별되며, FROM 절의 JOIN 형태에 따라서 INNER JOIN과 OUTER JOIN 으로 구별합니다.
-JOIN 조건으로 사용되는 연산자에 따른 분류
JOIN | 설명 |
EQUI JOIN | 두 테이블 간의 칼럼 값들이 서로 일치하는 경우 JOIN 조건으로 '=' 연산자를 사용 |
NON EQUI JOIN | 두 테이블 간의 칼럼 값들이 서로 일치하지 않는 경우 JOIN 조건으로 'BETWEEN ~ AND' 등의 범위 비교 연산자를 사용 |
-FROM 절의 JOIN 형태에 따른 분류
JOIN | 설명 |
INNER JOIN | JOIN 조건에서 값이 일치하는 행만 반환 |
OUTER JOIN | JOIN 조건에서 한쪽 값이 없더라도 행을 반환 |
EQUI JOIN
EQUI JOIN 개념
- 두 테이블 간의 컬럼 값들이 서로 정확하게 일치하는 경우에 사용하는 JOIN으로 WHERE 절에 '=' 연산자를 사용하여 JOIN 조건을 명시합니다.
- 일반적으로 기본키, 외래키로 지정된 컬럼을 JOIN으로 많이 사용합니다.
EQUI JOIN 구문
SELECT table1.column_name, table2.column_name
FROM table1, table2
WHERE table1.column_name = table2.column_name;
- table1.column_name : 데이터를 검색할 테이블 및 열을 명시한다.
- table 이름 대신에 FROM 절에 기술한 테이블의 alias를 사용해도 된다.
- table1.column_name = table2.column_name : 두 테이블을 JOIN 시킬 JOIN 조건을 명시한다.
- table 이름 대신에 FROM 절에 기술한 테이블의 alias를 사용해도 된다.
EQUI JOIN 예제
사원이 어떤 부서에서 근무하는지를 검색하시오.
iSQL> SELECT employee.eno, employee.ename, department.dno, department.dname
FROM employee, department
WHERE employee.dno = department.dno;
사원이 어떤 부서에서 근무하는지를 검색하시오(별칭을 사용하시오).
iSQL> SELECT e.eno, e.ename, d.dno, d.dname
FROM employee e, department d
WHERE e.dno = d.dno;
NON EQUI JOIN
NON EQUI JOIN 개념
두 테이블 간의 컬럼 값들이 서로 일치하지 않는 경우에 사용하는 JOIN 방법으로 WHERE 절에 보통 BETWEEN ~ AND, < , > 등의 비교 연산자를 사용하여 JOIN 조건을 작성합니다.
NON EQUI JOIN 예제
사원이 받는 급여의 등급을 조회
iSQL> SELECT e.ename, e.salary, s.grade
FROM employee e, salary s
WHERE e.salary BETWEEN s.low_sal AND s.high_sal;
728x90
반응형
'DB > SQL' 카테고리의 다른 글
[Oracle] 조인 (JOIN), 아우터 조인(Outer Join) (0) | 2021.03.16 |
---|---|
[ORACLE] 오라클 테이블 컬럼 추가/수정/삭제/이름 변경 하는 방법(ALTER 테이블 ADD/MODIFY/DROP/RENAME) (0) | 2021.03.16 |
[SQL Server] SELECT TOP (0) | 2021.03.16 |
[ORACLE] CASE WHEN ~ THEN ~ ELSE END (0) | 2021.03.16 |
오라클 cascade 사용방법 및 예제 (1) | 2021.03.14 |
댓글