SQL 的威力在於資料表之間的關係:INNER JOIN
在這裡,你要進行第一個 INNER JOIN!你會使用熟悉的 SQLite 資料庫 Chinook.sqlite。對於 Album 資料表中的每一筆紀錄,你將取出該筆的 Title,以及其對應藝人的 Name。後者來自 Artist 資料表,因此你需要在兩個資料表的 ArtistID 欄位上進行 INNER JOIN。
回想一下,要在 Northwind 資料庫中對 Orders 與 Customers 進行 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。為了達成這點,請在兩個資料表的ArtistID欄位上進行INNER JOIN。 - 呼叫
pd.DataFrame()時,對rs使用fetchall()方法以擷取rs中的所有紀錄,並把結果儲存到 DataFramedf。 - 將 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())