hyeonga_code
Database_34_ANSI JOIN_조인 기준, Equi JOIN, Non-equi JOIN 본문
![](https://blog.kakaocdn.net/dn/vahMR/btsoMGRg8E5/Yu55JUC0eJOFDuZiEJBDkk/img.jpg)
/*
-- JOIN의 기준
-- 매칭하려는 컬럼 명이 동일한 경우
-- 매칭하려는 컬럼의 개수가 여러 개인 경우
-- 매칭하려는 컬럼 명이 동일하지 않은 경우
-- JOIN KEY COLUMN의 관계가 동일한 것을 찾아 조회합니다. > 등가조인, 이퀴조인?
-- 등가가 아닌 데이터를 조회하는 JOIN 절 > 비트윈 연산자를 가장 많이 사용합니다.
EX_등급 목록 ( 월 매출에 따라 등급이 저장됩니다 )
-- 매달 등급이 변경되는 정보입니다. > 고객 테이블에는 저장되지 않습니다.
-- 고객 아이디가 저장된 고객 테이블
-- 구매 금액이 저장되는 주문 테이블
-- 금액에 따라 지정되는 등급이 저장되어 있는 등급 테이블
-- 따로 저장해야 하는 이유
-- 한 테이블로 저장하게 되면 하나만 수정하는 경우 무결성이 깨질 수 있습니다.
-- 비등가 조인
-- JOIN
-- EQUAL을 사용하는 조인 = 등가 조인
-- EQUAL을 사용하지 않는 조인 = 비등가 조인
*/
-- Equi JOIN
-- 등호 연산자를 사용합니다.
-- USING 절을 사용한 JOIN 또는 NATURAL JOIN 절
-- Non-equi JOIN
-- ON 절에 등호 연산자가 아닌 다른 연산자를 포함하는 조인입니다.
SELECT e.employee_id, e.last_name, e.job_id, e.salary, j.grade_level
FROM employees e JOIN job_grades j
ON (e.salary BETWEEN j.lowest_sal AND j.highest_sal);
-- F 등급은 Outer 데이터가 되어 출력되지 않습니다.
![](https://blog.kakaocdn.net/dn/bVUBk9/btsomP9fKjz/n202eCfPHp4R5l5dxexzM0/img.png)
-- 143번 직원의 연봉을 수정합니다.
UPDATE employees
SET salary=3200
WHERE employee_id=143;
-- 다시 데이터를 조회했을 때 143번의 등급이 변경되는 것을 볼 수 있습니다.
SELECT e.employee_id, e.last_name, e.job_id, e.salary, j.grade_level
FROM employees e JOIN job_grades j
ON (e.salary BETWEEN j.lowest_sal AND j.highest_sal);
![](https://blog.kakaocdn.net/dn/b3Euk8/btsoicRsU5A/PAea9hA6CWPXlnisGUzFLK/img.png)
-- 수정한 데이터를 COMMIT 상태로 되돌립니다.
ROLLBACK;
-- 143번의 데이터가 다시 변경된 것을 알 수 있습니다.
-- 고객 테이블에 등급 데이터가 저장되어 있었다면 변경되지 않았을 것입니다.
SELECT e.employee_id, e.last_name, e.job_id, e.salary, j.grade_level
FROM employees e JOIN job_grades j
ON (e.salary BETWEEN j.lowest_sal AND j.highest_sal);
![](https://blog.kakaocdn.net/dn/cRbLju/btsooGiQNrS/3zWeLJOPBq2u9t6EwFSwm1/img.png)
'Oracle Database' 카테고리의 다른 글
Database_36_Oracle JOIN_등가 조인 (0) | 2023.08.01 |
---|---|
Database_35_ANSI JOIN_Cartesian Product 카타시안 곱, Cross JOIN (0) | 2023.07.31 |
Database_33_ANSI JOIN_OUTER JOIINNER JOIN (0) | 2023.07.31 |
Database_32_ANSI JOIN_SELF JOIN 셀프 조인 (0) | 2023.07.31 |
Database_31_ANSI JOIN_조인 함수 테이블의 접두어 사용 (0) | 2023.07.30 |