슴슴한 IT

[SQLD,SQLP]SQL기본 - JOIN 본문

SQL

[SQLD,SQLP]SQL기본 - JOIN

요한바울 2023. 8. 15. 23:34
728x90

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 조건절은 두 테이블의 동일한 이름을 가진 열을 기준으로 결합한다는 차이점이 있습니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90