[데이터베이스/DB] 연관 내용 검색하는 내부 조인(INNER JOIN) 사용법
- Database
- 2021. 5. 28.
조인
데이터베이스에서 복수의 릴레이션을 합치는 걸 조인(JOIN)이라고 부른다. 예를 들어 '고객'이라는 릴레이션과 '책'이라는 릴레이션이 있다고 해보자. 이때 고객의 이름(고객)과 고객이 주문한 책의 이름(책)을 SQL문으로 조회하려면 두 릴레이션을 합쳐서 조회해야 한다. 대략 이런 개념이 조인이다.
조인은 크게 내부 조인(INNER JOIN)과 외부 조인(OUTER JOIN)으로 나뉘는데 이번 글에서는 내부 조인을 다룬다.
내부 조인(INNER JOIN)
내부 조인은 테이블의 컬럼 값을 비교하고 조건에 맞는 값을 가져온다. 서로 연관된 내용을 검색하기 위해 쓰인다는 말이다.
내부 조인을 설명하기 전에 간단하게 두 개의 테이블을 조인한 결과를 보자.
위의 customer과 orders 두 개의 테이블을 조인할 경우
SELECT * FROM ORDERS, CUSTOMER;
위 결과가 나온다. 단순하게 두 개의 테이블을 이어 붙인 모습이다. 빨간 박스를 보면 기본키인 CUSTID의 값이 1로 동일하기 때문에 문제가 없지만 파란 박스처럼 CUSTID의 값이 다른데 연결된 걸 확인할 수 있다. 사용할 의미가 없는 테이블이다.
의미 있는 테이블로 사용하기 위해선 속성의 값을 동일하게 맞춰주면 된다. 이를 위해 CUSTID 값이 같은 조건을 걸고 조인을 수행한다.
-- 둘 다 사용 가능
-- 방법 1
SELECT * FROM ORDERS, CUSTOMER
WHERE CUSTOMER.CUSTID = ORDERS.CUSTID;
-- 방법2
SELECT * FROM ORDERS INNER JOIN CUSTOMER
ON CUSTOMER.CUSTID = ORDERS.CUSTID;
CUSTID가 같은 튜플끼리 조인한 것이 보인다. 이를 내부 조인, INNER JOIN이라고 부른다.
--내부 조인 문법
select 컬럼명... from 테이블 (별칭) inner join 테이블2 (별칭)
on 테이블1.컬럼 = 테이블2.컬럼 where 조건;
반응형
'Database' 카테고리의 다른 글
[오라클/ORACLE] 데이터 조작어(DCL) - INSERT, DELETE, UPDATE (0) | 2021.05.29 |
---|---|
[오라클/ORACLE] 데이터 정의어(DDL) - CREATE, ALTER, DROP (0) | 2021.05.29 |
[데이터베이스/DB] 선택적 조인, 외부 조인(OUTER JOIN) 사용법 (0) | 2021.05.28 |
[데이터베이스/DB] 기본키와 외래키의 관계 (0) | 2021.05.27 |
[오라클/ORACLE] 자동 실행 해제하는 법 (0) | 2021.05.26 |