PK, FK, JOIN

Seung jun Cha·2023년 8월 30일
0

1. PK FK

  • 개념 : 데이터베이스의 구조와 관계를 정의하는 데 사용됩니다.

1-1 PK

  • 개념 : 각 레코드를 식별하기 위한 필드로 테이블 내에서 중복되지 않는 고유한 값이며 하나 이상의 필드를 조합하여 만들 수도 있다. 각 행으 고유성을 보장하고 검색과 관리를 용이하게 합니다.
    예를 들어, "고객(Customer)" 테이블에서는 "고객ID"가 PK가 될 수 있습니다. 각 고객은 고유한 "고객ID"를 가지며, 이를 통해 개별 고객을 식별할 수 있습니다.

1-2 FK

  • 개념 : Foreign Key는 다른 테이블의 Primary Key를 참조하는 열(필드)입니다.
    FK는 데이터베이스 내에서 테이블 간의 관계를 정의하고, 관련된 테이블 간의 데이터 무결성을 유지하는 데 사용됩니다.
    외래키는 관계를 통해 데이터를 연결하고, 참조하는 테이블의 값을 참조하여 다른 테이블의 데이터를 연결합니다.
    예를 들어, "주문(Order)" 테이블에서 "고객ID" 열은 "고객(Customer)" 테이블의 "고객ID" PK를 참조할 수 있습니다. 이를 통해 주문 테이블과 고객 테이블을 연결하여 각 주문이 어떤 고객에게 속하는지 파악할 수 있습니다.

2. Join

  • JOIN 문은 데이터베이스에서 두 개 이상의 테이블을 연결하여 데이터를 검색하거나 조합하는 데 사용되는 SQL 명령문이다. 데이터의 중복과 무결성을 위해서 테이블을 분리하고 필요할 때 조인으로 분리된 데이터를 함께 사용한다.
  • IFNULL() : NULL값이 나왔을 때 다른 값으로 바꾼다.
 select first_name, last_name,order_date, IFNULL(SUM(amount), 0) 
 from customers 
 left join orders on orders.customer_id = customers.id
 GROUP BY first_name, last_name;

2-1 Inner Join

  • 조인 조건을 충족하고 select 데이터가 양쪽 테이블 모두에 값이 존재하는 값만 출력
SELECT < 목록>
FROM < 번째 테이블>
    INNER JOIN < 번째 테이블>
    ON <조인 조건>
[WHERE 검색 조건]

#INNER JOIN을 JOIN이라고만 써도 INNER JOIN으로 인식합니다. 조인을 할 때는
별칭을 주는 것이 가독성이 좋다.

SELECT * FROM buytbl B JOIN usertbl U
	ON B.userId = U.userID
    	WHERE B.userID = 'CHA';

2-2 Outer Join

  • 내부 조인은 두 테이블에 모두 데이터가 있어야만 결과가 나오지만, 외부 조인은 한쪽에만 데이터가 있어도 결과가 나온다.
    • LEFT OUTER JOIN: 왼쪽 테이블의 모든 행을 포함하면서, 오른쪽 테이블에서는 왼쪽테이블의 행과 일치하는 값이 있는 경우에만 연결합니다. 일치하지 않는 경우에는 NULL 값을 반환합니다.
SELECT 
    first_name, last_name, order_date, amount
FROM
    customers
        LEFT JOIN
    orders ON orders.customer_id = customers.id
    고객정보를 다 가져오고, 고객의 주문정보가 있으면 가져온다.
----------------------------------------------------    
SELECT 
    order_date, amount, first_name, last_name
FROM
    orders
        LEFT JOIN
    customers ON orders.customer_id = customers.id;
     주문정보를 다 가져오고, 주문의 고객정보가 있으면 가져온다.
     고객정보가 없는 주문은 있을 수 없으므로 inner join과 같다
  • RIGHT OUTER JOIN: RIGHT OUTER JOIN은 일반적으로 사용되지 않으며, LEFT OUTER JOIN과 유사한 결과를 얻을 수 있습니다. LEFT OUTER JOIN으로 바꿔서 구현할 수 있는 경우가 많습니다.
  • FULL OUTER JOIN: 왼쪽 또는 오른쪽 테이블의 모든 값이 출력되는 조인


-참고
https://hongong.hanbit.co.kr/sql-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-joininner-outer-cross-self-join/

0개의 댓글