La force de SQL réside dans les relations entre les tables : INNER JOIN
Ici, vous allez effectuer votre premier INNER JOIN ! Vous utiliserez votre base de données SQLite préférée, Chinook.sqlite. Pour chaque enregistrement de la table Album, vous allez extraire le Title ainsi que le Name de l'Artist. Ce dernier provient de la table Artist; vous devrez donc effectuer un INNER JOIN entre ces deux tables sur la colonne ArtistID de chacune.
Rappelez-vous que pour INNER JOIN les tables Orders et Customers de la base Northwind, Hugo a exécuté la requête SQL suivante :
"SELECT OrderID, CompanyName FROM Orders INNER JOIN Customers on Orders.CustomerID = Customers.CustomerID"
Le code suivant a déjà été exécuté pour importer les modules nécessaires et créer le moteur :
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('sqlite:///Chinook.sqlite')
Cette activité fait partie du cours
Introduction à l'importation de données en Python
Instructions de l’exercice
- Assignez à
rsles résultats de la requête suivante : select tous les enregistrements, en extrayant leTitlede l'album et leNamede l'artiste pour chaque enregistrement from les tablesAlbumetArtist, respectivement. Pour ce faire, effectuez unINNER JOINentre ces deux tables sur la colonneArtistIDdes deux. - Dans un appel à
pd.DataFrame(), appliquez la méthodefetchall()àrsafin de récupérer tous les enregistrements ders. Stockez-les dans le DataFramedf. - Définissez les noms de colonnes du DataFrame avec les noms correspondants des colonnes des tables.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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())