시작하기무료로 시작하기

SQL의 강점은 테이블 간 관계에 있습니다: INNER JOIN

이번에는 첫 번째 INNER JOIN을 수행해 보겠습니다! 익숙한 SQLite 데이터베이스 Chinook.sqlite를 사용할 거예요. Album 테이블의 각 레코드에 대해, Title과 해당 ArtistName을 추출합니다. NameArtist 테이블에서 가져와야 하므로, 두 테이블의 ArtistID 열을 기준으로 INNER JOIN 해야 합니다.

Northwind 데이터베이스에서 OrdersCustomers 테이블을 INNER JOIN 하기 위해 Hugo가 실행했던 SQL 쿼리를 떠올려 보세요:

"SELECT OrderID, CompanyName FROM Orders INNER JOIN Customers on Orders.CustomerID = Customers.CustomerID"

필요한 패키지를 임포트하고 엔진을 생성하는 코드는 이미 실행되어 있습니다:

import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('sqlite:///Chinook.sqlite')

이 연습은 강의의 일부입니다

Python에서 데이터 가져오기 입문

강의 보기

연습 안내

  • 다음 쿼리의 결과를 rs에 할당하세요: Album 테이블과 Artist 테이블에서 각각 레코드의 Title과 아티스트의 Name을 추출해 모든 레코드를 select 합니다. 이를 위해 두 테이블을 공통 열인 ArtistIDINNER JOIN 하세요.
  • pd.DataFrame() 호출에서 rsfetchall() 메서드를 적용해 rs의 모든 레코드를 가져오세요. 이를 DataFrame df에 저장합니다.
  • DataFrame의 열 이름을 테이블 열 이름과 일치하도록 설정하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Open engine in context manager
# Perform query and save results to DataFrame: df
with engine.connect() as con:
    ____
    ____
    ____

# Print head of DataFrame df
print(df.head())
코드 편집 및 실행