SQL/JOIN
JOIN(1)
jjhim531
2024. 8. 21. 11:28
반응형
[ [ JOIN ] ]
두개 이상의 테이블에서 데이터를 조회하고자 할 때 사용되는 구문
조회 결과는 하나의 결과(RESULT SET)를 반환한다.
관계형 데이터베이스에서는 최소한의 데이터를 각각의 테이블에 담고 있음
(무작정 다 조회해 오는게 아니라 각 테이블간 연결고리(외래키)를 통해 데이터를 매칭시켜 조회해야한다)
JOIN은 크게 "오라클 전용구문" "ANSI 구문"
[ 용어정리 ]
오라클 전용 구문 | ANSI 구문 |
등가조인 (EQUAL JOIN) |
내부조인 (INNER JOIN) -> JOIN USING/ON |
포괄조인 LEFT, RIGHT |
외부조인 LEFT, RIGHT, FULL |
자체조인 비증가 조인 |
JOIN ON |
< < 등가조인(EQUAL JOIN) / 내부조인(INNER JOIN) > >
연결시키는 컬럼의 값이 일치하는 행들만 조회
(일치하는 값이 없는 행은 조회 제외)
* ANSI구문
-- FROM절에 기준이되는 테이블 하나 기술
-- JOIN절에 같이 조인하고자하는 테이블 기술 + 매칭시킬 컬럼에대한 조건
-- JOIN USING / JOIN ON
< 연결할 두 컬럼명이 다른 경우 : JOIN ON >
EX) 전체 사원들의 사번, 사원명, 부서코드, 부서명(EMPLOYEE : DEPT_CODE / DEPARMENT : DEPT_ID)
SELECT
emp_id,
emp_name,
dept_code,
dept_title
FROM
employee
JOIN department ON ( dept_code = dept_id );
< 연결할 두 컬럼명이 동일한 경우 : JOIN USING >
EX) 전체 사원들의 사번, 사원명, 직급코드, 직급명
SELECT
emp_id,
emp_name,
e.job_code,
job_name
FROM
employee e
JOIN job j ON ( e.job_code = j.job_code );
--두 쿼리의 코드명이 같이 때문에 JOIN ON을 쓰려면 별칭을 부여해서 구분해준다.
SELECT
emp_id,
emp_name,
job_code,
job_name
FROM
employee
JOIN job USING ( job_code );
-- USING을 쓴다면 별칭은 필요없다.
※ 오라클 전용구문
* FROM절에 조회하고자하는 테이블들 나열(, 로 구분)
* WHERE절에 매칭시킬 컬럼에 대한 조건을 제시
728x90
반응형