from itables import init_notebook_mode
from pathlib import Path
import polars as pl
import sqlite3
=True)
init_notebook_mode(all_interactive= sqlite3.connect("rhytmiquery/chinook.db") conn
Code de la fonction
def table_query_results(query_file: str, conn: sqlite3.Connection):
"""
Exécute une requête SQL à partir d'un fichier et retourne les résultats sous forme de tableau.
Args:
query_file (str): Chemin vers le fichier contenant la requête SQL.
"""
= Path(query_file)
query_path with query_path.open("r", encoding="utf-8") as file:
= file.read()
query
= conn.execute(query)
results = [col[0] for col in results.description]
column_names = pl.DataFrame(results.fetchall(), schema=column_names)
dataframe
return dataframe
ERD
Requete 1
SELECT
Name,
ComposerFROM
TracksORDER BY
NameLIMIT
10
"rhytmiquery/queries/tracks.sql", conn=conn) table_query_results(
Requete 2
SELECT
AS Album,
alb.Title AS Artist
art.Name FROM
AS alb
albums INNER JOIN artists AS art ON art.artistID = alb.artistID
ORDER BY
artist;
"rhytmiquery/queries/test.sql", conn=conn) table_query_results(
Nombre d’albums par artiste
SELECT
AS ArtistName,
art.Name COUNT(alb.albumID) AS NumberOfAlbums
FROM
AS alb
albums INNER JOIN artists AS art ON alb.artistID = art.artistID
GROUP BY
ArtistNameORDER BY
COUNT(alb.albumID) DESC
"rhytmiquery/queries/albums_by_artist.sql", conn=conn) table_query_results(