Siła SQL tkwi w relacjach między tabelami: INNER JOIN
W tym ćwiczeniu wykonasz swoje pierwsze INNER JOIN! Będziesz pracować ze swoją ulubioną bazą danych SQLite – Chinook.sqlite. Dla każdego rekordu w tabeli Album wyciągniesz pole Title wraz z polem Name z tabeli Artist. Ponieważ dane pochodzą z dwóch różnych tabel, musisz połączyć je za pomocą INNER JOIN po kolumnie ArtistID.
Przypomnij sobie, że aby wykonać INNER JOIN tabel Orders i Customers z bazy Northwind, Hugo użył następującego zapytania SQL:
"SELECT OrderID, CompanyName FROM Orders INNER JOIN Customers on Orders.CustomerID = Customers.CustomerID"
Poniższy kod został już wykonany – zaimportował niezbędne pakiety i utworzył silnik:
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('sqlite:///Chinook.sqlite')
To ćwiczenie jest częścią kursu
Wprowadzenie do importowania danych w Pythonie
Instrukcje do ćwiczenia
- Przypisz do
rswyniki następującego zapytania: wybierz wszystkie rekordy, wyciągając poleTitlez tabeliAlbumoraz poleNameartysty z tabeliArtist. W tym celu połącz obie tabele za pomocąINNER JOINpo kolumnieArtistID. - W wywołaniu
pd.DataFrame()zastosuj metodęfetchall()na obiekciers, aby pobrać wszystkie rekordy. Zapisz je w ramce danychdf. - Ustaw nazwy kolumn ramki danych tak, aby odpowiadały nazwom kolumn z tabel.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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())