일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- sqlp
- SQL문자형함수
- SQLD
- Britcent 3개월 완독 챌린지
- Group Functions
- Searched Case Expression
- 연관 서브 쿼리
- SQL개발자
- 다중 열 서브 쿼리
- SQL기본
- SUM
- SQL Grouping Functions
- SQL숫자형 함수
- 단일 행 서브 쿼리
- nvl
- null
- SQL연산자
- Atomic Habit
- sql
- AVG
- CASE중첩
- Cloud ERP
- Aggregation Function
- 데이터모델링
- Simple Case Expression
- Window Functions
- 3개월 완독 챌린지
- SQL내장함수
- Where
- sql전문가
- Today
- Total
슴슴한 IT
[SQLD,SQLP]SQL기본 - JOIN 본문
SQL JOIN
SQL JOIN은 두 개 이상의 테이블을 결합하여 하나의 결과 집합을 생성하는 것입니다. JOIN은 테이블 간의 관계를 기반으로 수행되며, 공통된 열을 기준으로 두 개 이상의 테이블을 결합합니다.
SQL JOIN에는 다음과 같은 종류가 있습니다.
- INNER JOIN: 두 개 이상의 테이블에서 공통된 값이 있는 행만을 결합합니다.
- LEFT JOIN: 두 개 이상의 테이블에서 왼쪽 테이블의 모든 행을 결합하고, 오른쪽 테이블의 행은 공통된 값이 있는 경우에만 결합합니다.
- RIGHT JOIN: 두 개 이상의 테이블에서 오른쪽 테이블의 모든 행을 결합하고, 왼쪽 테이블의 행은 공통된 값이 있는 경우에만 결합합니다.
- FULL JOIN: 두 개 이상의 테이블의 모든 행을 결합합니다.
SQL JOIN은 데이터베이스에서 두 개 이상의 테이블을 결합하여 필요한 정보를 조회하는 데 사용됩니다. 예를 들어, 고객 테이블과 주문 테이블을 결합하여 고객의 이름, 주소, 전화번호와 주문번호, 주문일자, 주문금액을 조회할 수 있습니다.
SQL JOIN은 데이터베이스에서 매우 중요한 기능이며, 데이터베이스 프로그래머는 SQL JOIN을 사용하여 필요한 정보를 효율적으로 조회할 수 있습니다.
INNER JOIN
이 쿼리는 고객 테이블과 주문 테이블을 INNER JOIN하여 고객의 이름, 주소, 전화번호와 주문번호, 주문일자, 주문금액을 조회합니다.
SELECT
customer.name,
customer.address,
customer.phone,
order.order_number,
order.order_date,
order.order_amount
FROM
customer
INNER JOIN
order
ON
customer.id = order.customer_id;
LEFT JOIN
이 쿼리는 고객 테이블과 주문 테이블을 LEFT JOIN하여 고객의 이름, 주소, 전화번호와 주문번호, 주문일자, 주문금액을 조회합니다. 왼쪽 테이블인 고객 테이블의 모든 행이 조회되며, 오른쪽 테이블인 주문 테이블의 행은 공통된 값이 있는 경우에만 조회됩니다.
SELECT
customer.name,
customer.address,
customer.phone,
order.order_number,
order.order_date,
order.order_amount
FROM
customer
LEFT JOIN
order
ON
customer.id = order.customer_id;
RIGHT JOIN
이 쿼리는 고객 테이블과 주문 테이블을 RIGHT JOIN하여 고객의 이름, 주소, 전화번호와 주문번호, 주문일자, 주문금액을 조회합니다. 오른쪽 테이블인 주문 테이블의 모든 행이 조회되며, 왼쪽 테이블인 고객 테이블의 행은 공통된 값이 있는 경우에만 조회됩니다.
SELECT
customer.name,
customer.address,
customer.phone,
order.order_number,
order.order_date,
order.order_amount
FROM
customer
RIGHT JOIN
order
ON
customer.id = order.customer_id;
FULL JOIN
이 쿼리는 고객 테이블과 주문 테이블을 FULL JOIN하여 고객의 이름, 주소, 전화번호와 주문번호, 주문일자, 주문금액을 조회합니다. 두 테이블의 모든 행이 조회됩니다.
SELECT
customer.name,
customer.address,
customer.phone,
order.order_number,
order.order_date,
order.order_amount
FROM
customer
FULL JOIN
order
ON
customer.id = order.customer_id;
JOIN ON 조건절과 USING 조건절
SQL 조인 ON 조건절과 USING 조건절은 모두 두 개 이상의 테이블을 결합하는 데 사용됩니다. 하지만 두 조건절은 다음과 같은 차이점이 있습니다.
- ON 조건절은 두 테이블의 동일한 값을 기준으로 결합합니다.
- USING 조건절은 두 테이블의 동일한 이름을 가진 열을 기준으로 결합합니다.
예를 들어, 다음과 같은 두 개의 테이블이 있다고 가정합니다.
- 고객 테이블(customer)
- 주문 테이블(order)
고객 테이블에는 고객 ID, 고객 이름, 고객 주소 등의 정보가 저장되어 있습니다. 주문 테이블에는 주문 ID, 주문 날짜, 주문 금액 등의 정보가 저장되어 있습니다.
이 두 테이블을 결합하여 고객 이름과 주문 날짜를 조회하려면 다음과 같은 SQL 쿼리를 사용할 수 있습니다.
SELECT customer.name, order.order_date
FROM customer
JOIN order
ON customer.id = order.customer_id;
이 쿼리는 고객 테이블의 고객 ID와 주문 테이블의 주문 ID가 동일한 행을 조회합니다.
또는 다음과 같은 SQL 쿼리를 사용할 수 있습니다.
SELECT customer.name, order.order_date
FROM customer
JOIN order
USING (customer_id);
이 쿼리는 고객 테이블과 주문 테이블의 고객 ID 열이 동일한 행을 조회합니다.
ON 조건절과 USING 조건절은 모두 두 개 이상의 테이블을 결합하는 데 사용되지만, ON 조건절은 두 테이블의 동일한 값을 기준으로 결합하고, USING 조건절은 두 테이블의 동일한 이름을 가진 열을 기준으로 결합한다는 차이점이 있습니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'SQL' 카테고리의 다른 글
[SQLD,SQLP]SQL활용 - 그룹함수, SQL Functions: Aggregate, Group, and Window Functions (0) | 2023.08.26 |
---|---|
[SQLD,SQLP]SQL활용 - Subquery (0) | 2023.08.16 |
[SQLD, SQLP]SQL기본 - ORDER BY (0) | 2023.08.11 |
[SQLD, SQLP]SQL기본 - 집계함수와 NULL 처리 (0) | 2023.08.10 |
[SQLD,SQLP]SQL기본 - GROUP BY, HAVING 절 (0) | 2023.08.08 |