5일차: 데이터 과학을 위한 고급 SQL

Jan 24 2023
이 블로그에는 Inner Join, Left Join, Right Join, Full Join, Self Join 및 Cross Join과 같은 조인 유형이 포함되어 있습니다. JOIN 절은 두 개 이상의 테이블 사이의 관련 열을 기반으로 행을 결합하는 데 사용됩니다.

이 블로그에는 Inner Join, Left Join, Right Join, Full Join, Self Join 및 Cross Join과 같은 조인 유형이 포함되어 있습니다.

절 JOIN은 두 개 이상의 테이블 사이의 관련 열을 기반으로 행을 결합하는 데 사용됩니다.

1. 셀프 조인

셀프 조인은 테이블이 스스로 조인하는 일반 조인입니다.

셀프 조인 구문:

table1 T1, table1 T2 WHERE 조건 에서 column_name(s) 선택 ;

쿼리: 사용자 T1, 사용자 T2에서 T1.user_id , T1.name, T2.user_id, T2.name을 선택합니다.

셀프 조인

참고: T1 과 T2 는 동일한 테이블에 대한 서로 다른 테이블 별칭입니다.

2. 내부 조인

키워드 INNER JOIN는 두 테이블에서 일치하는 값이 있는 레코드를 선택합니다.

내부 조인의 구문:

SELECT column_name(s) FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name ;

질의: G.Guest_user_id = u.user_id의 사용자 u
내부 게스트 G에서 * 선택;

내부 조인은 테이블의 양쪽에서 데이터가 일치하는 행만 제공합니다.

3. 왼쪽 조인

키워드 LEFT JOIN는 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 일치하는 레코드를 반환합니다.

왼쪽 조인의 구문:

SELECT column_name(s) FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name ;

쿼리: G.Guest_user_id = u.user_id에서 게스트 G에 합류한 사용자 u에서 * 선택;

Left 조인에서는 가장 먼저 언급되는 사용자 테이블(In Query)에 대해 Left 조인을 적용합니다. 테이블 1(예: 사용자 테이블)의 모든 행과 테이블 2(예: 게스트 테이블)의 일치하는 행만 반환합니다.

4. 오른쪽 조인

키워드 RIGHT JOIN는 오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 일치하는 레코드를 반환합니다.

오른쪽 조인의 구문:

SELECT column_name(s) FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name ;

질의: G.Guest_user_id = u.user_id에서 게스트 G에 가입하기 위해 사용자 u에서 *를 선택합니다 .

오른쪽 조인에서는 오른쪽 테이블(예: Guest 테이블)의 모든 행과 첫 번째 테이블(예: 사용자 테이블)의 일치하는 행만 반환합니다.

5. 풀 조인

키워드 Full JOIN는 왼쪽 또는 오른쪽 테이블에 일치 항목이 있는 경우 모든 레코드를 반환합니다.

완전 조인의 구문:

SELECT column_name(s) FROM table1
FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;

6. 크로스 조인

키워드 CROSS JOIN는 두 테이블(table1 및 table2)의 모든 레코드를 반환합니다.

교차 조인의 구문:

SELECT column_name(s) FROM table1
CROSS JOIN table2 ;

질의: 사용자 u에서 Guest G를 교차 조인하는 *를 선택하십시오.

참고: On 절은 자체 및 교차 조인에서 선택 사항입니다.

집계/순위 기능이 있는 JOINS

조인과 함께 Aggregate, Ranking 등의 기능을 사용할 수 있으며 원하는 대로 쿼리를 조작할 수 있습니다.

다음은 group by 및 having 절을 사용한 왼쪽 조인의 간단한 예입니다.

쿼리: 사용자 u에서 user_id, u.name, min(u.age) 선택
G.Guest_user_id = u.user_id
min(G.age) <= 30인 user_id, u.name으로 그룹화;

읽어주시고 좋아해주셔서 감사합니다.

=============================끝===================== =======

GitHub: 5일 차 세션

Git Hub에서 별점을 주세요!!

참조 :

  1. https://www.w3schools.com/sql/default.asp
  2. https://www.geeksforgeeks.org/

더 많은 데이터 과학 관련 게시물을 보려면 저를 팔로우하세요 !

링크드인 에서 연결하자 !