Nanterre p10 - Dev Data

Logo

semaine s14

semaine s15

semaine courante (s17)

planning des veilles

Sakila Database Project

**!!REMEMBER!!** **SELECT * | col 1,col 2,.. col n** **FROM Table_name** **WHERE conditions** **GROUP BY col 1, col 2,...** **HAVING conditions** **ORDER BY col 1, col 2,...** **LIMIT n;**
#Importer les dépendances

# Se Connecter à la BDD Sakila
#TBD
# définir la fct sql_to_pandas

def sql_to_df(sql_query):

    # Use pandas to pass sql query using connection form SQLite3
    df = pd.read_sql(sql_query, con)

    # Show the resulting DataFrame
    return df
**1-** * Afficher les 5 premiers Records de la table Actor
query = #TBD

# Grab from first two columns
sql_to_df(query).head()
first_name last_name
0 PENELOPE GUINESS
1 NICK WAHLBERG
2 ED CHASE
3 JENNIFER DAVIS
4 JOHNNY LOLLOBRIGIDA
**2-** * Récupérer dans une colonne Actor_Name le full_name des acteurs sous le format: first_name + " " + last_name
query =#TBD


sql_to_df(query).head()
Actor_Name
0 PENELOPE GUINESS
1 NICK WAHLBERG
2 ED CHASE
3 JENNIFER DAVIS
4 JOHNNY LOLLOBRIGIDA
**3-** * Récupérer dans une colonne Actor_Name le full_name des acteurs sous le format: first_name en minuscule + "." + last_name en majuscule

SQL Syntaxes

SELECT

CONCAT(lower(first_name), '.', UPPER(last_name)) AS 'Actor Name'

FROM

actor;

query =#TBD


sql_to_df(query).head()
Actor_Name
0 penelope.GUINESS
1 nick.WAHLBERG
2 ed.CHASE
3 jennifer.DAVIS
4 johnny.LOLLOBRIGIDA
**4-** * Récupérer dans une colonne Actor_Name le full_name des acteurs sous le format: last_name en majuscule + "." + premiere lettre du first_name en majuscule
query =#TBD


sql_to_df(query).head()
Actor_Name
0 GUINESS.P
1 WAHLBERG.N
2 CHASE.E
3 DAVIS.J
4 LOLLOBRIGIDA.J
**5-** * Trouver le ou les acteurs appelé(s) "JENNIFER"
query =#TBD


sql_to_df(query).head()
actor_id first_name last_name
0 4 JENNIFER DAVIS
**6-** * Trouver les acteurs ayant des prénoms de 3 charactères.
query =#TBD


sql_to_df(query).head()
actor_id first_name last_name
0 9 JOE SWANK
1 13 UMA WOOD
2 18 DAN TORN
3 19 BOB FAWCETT
4 26 RIP CRAWFORD
**7-** * Afficher les acteurs (actor_id, first_name, last_name, nbre char first_name, nbre char last_name )par ordre décroissant de longueur de prénoms
query =#TBD


sql_to_df(query).head()
actor_id first_name last_name length(first_name) length(last_name)
0 91 CHRISTOPHER BERRY 11 5
1 163 CHRISTOPHER WEST 11 4
2 10 CHRISTIAN GABLE 9 5
3 58 CHRISTIAN AKROYD 9 6
4 61 CHRISTIAN NEESON 9 6
**8-** * Afficher les acteurs (actor_id, first_name, last_name, nbre char first_name, nbre char last_name )par ordre décroissant de longueur de prénoms et croissant de longuer de noms
query =#TBD

sql_to_df(query).head()
actor_id first_name last_name length(first_name) length(last_name)
0 163 CHRISTOPHER WEST 11 4
1 91 CHRISTOPHER BERRY 11 5
2 109 SYLVESTER DERN 9 4
3 10 CHRISTIAN GABLE 9 5
4 58 CHRISTIAN AKROYD 9 6
**9-** * Trouver les acteurs ayant dans leurs last_names la chaine: "SON
query =#TBD


sql_to_df(query).head()
actor_id first_name last_name
0 6 BETTE NICHOLSON
1 8 MATTHEW JOHANSSON
2 61 CHRISTIAN NEESON
3 62 JAYNE NEESON
4 64 RAY JOHANSSON
**10-** * Trouver les acteurs ayant des last_names commençant par la chaine: "JOH"
query =#TBD


sql_to_df(query).head()
actor_id first_name last_name
0 8 MATTHEW JOHANSSON
1 64 RAY JOHANSSON
2 146 ALBERT JOHANSSON
**11-** * Afficher par ordre alphabétique croissant les last_names et les first_names des acteurs ayant dans leurs last_names la chaine "LI"
query =#TBD


sql_to_df(query).head()
actor_id first_name last_name
0 86 GREG CHAPLIN
1 82 WOODY JOLIE
2 34 AUDREY OLIVIER
3 15 CUBA OLIVIER
4 172 GROUCHO WILLIAMS
**12-** * Trouver dans la table country les countries "China", "Afghanistan", "Bangladesh"
query =#TBD


sql_to_df(query).head()
country_id country
0 1 Afghanistan
1 12 Bangladesh
2 23 China
**13-** * Trouver le nombre des acteurs ayant le meme last_name * Afficher le resultat par ordre décroissant
query =#TBD


sql_to_df(query).head()
last_name Num Actors with Last Name
0 KILMER 5
1 NOLTE 4
2 TEMPLE 4
3 AKROYD 3
4 ALLEN 3
**14-** * Trouver le nombre des acteurs ayant le meme last_name * Afficher UNIQUEMENT les last_names communs à au moins 3 acteurs * Afficher par ordre alph. croissant
query =#TBD


sql_to_df(query).head()
last_name Num Actors
0 AKROYD 3
1 ALLEN 3
2 BERRY 3
3 DAVIS 3
4 DEGENERES 3
**15-** * Trouver le nombre des acteurs ayant le meme first_name Afficher le resultat par ordre alph. croissant
query =#TBD


sql_to_df(query).head()
first_name Num Actors with Last Name
0 ADAM 2
1 AL 1
2 ALAN 1
3 ALBERT 2
4 ALEC 1
**16-** * Corriger le first_name de l'acteur HARPO WILLIAMS qui était accidentellement inséré à GROUCHO WILLIAMS
query =#TBD


query ="""
    SELECT * FROM actor 
    where last_name = 'WILLIAMS';"""

sql_to_df(query).head()
actor_id first_name last_name last_update
0 72 SEAN WILLIAMS 2011-09-14 18:05:30
1 137 MORGAN WILLIAMS 2011-09-14 18:05:31
2 172 GROUCHO WILLIAMS 2011-09-14 18:05:32
**17-** * Trouver les first_names,last names et l'adresse de chacun des membre staff RQ: utiliser join avec les tables staff & address:
query =#TBD


sql_to_df(query).head()
first_name last_name address
0 Mike Hillyer 23 Workhaven Lane
1 Jon Stephens 1411 Lillydale Drive
**18-** * Afficher pour chaque membre du staff ,le total de ses salaires depuis Aout 2005. RQ: Utiliser les tables staff & payment.
query =#TBD


sql_to_df(query).head()
staff_id first_name last_name Total Purchases
0 1 Mike Hillyer 33489.47
1 2 Jon Stephens 33927.04
**19-** * Afficher pour chaque film ,le nombre de ses acteurs
query =#TBD


sql_to_df(query).head()
title Num Actors
0 ACADEMY DINOSAUR 10
1 ACE GOLDFINGER 4
2 ADAPTATION HOLES 5
3 AFFAIR PREJUDICE 5
4 AFRICAN EGG 5
**20-** * Trouver le film intitulé "HUNCHBACK IMPOSSIBLE"
query =#TBD


sql_to_df(query).head()
film_id
0 439
**21-** * Combien de copies exist t il dans le systme d'inventaire pour le film Hunchback Impossible
query =#TBD


sql_to_df(query).head()
Num Copies
0 6
**22-** * Afficher les titres des films en anglais commençant par 'K' ou 'Q'
query =#TBD

sql_to_df(query).head()
title language_id
0 KANE EXORCIST 1
1 KARATE MOON 1
2 KENTUCKIAN GIANT 1
3 KICK SAVANNAH 1
4 KILL BROTHERHOOD 1

Bonus

* Afficher les first et last names des acteurs qui ont participé au film intitulé 'ACADEMY DINOSAUR'
query =#TBD


sql_to_df(query).head()
first_name last_name
0 PENELOPE GUINESS
1 CHRISTIAN GABLE
2 LUCILLE TRACY
3 SANDRA PECK
4 JOHNNY CAGE
* Trouver la liste des film catégorisés comme family films.
query =#TBD

sql_to_df(query).head()
title
0 AFRICAN EGG
1 APACHE DIVINE
2 ATLANTIS CAUSE
3 BAKED CLEOPATRA
4 BANG KWAI
* Afficher le top 5 des films les plus loués par ordre decroissant
query =#TBD


sql_to_df(query).head()
title Num Rentals
0 MOB DUFFEL 16049
1 HUNCHBACK IMPOSSIBLE 16048
2 ILLUSION AMELIE 16047
3 VOYAGE LEGALLY 16046
4 COMANCHEROS ENEMY 16045
* Afficher le chiffre d'affaire par store. RQ: le chiffre d'affaire = somme (amount)
query =#TBD


sql_to_df(query).head()
store_id Total Amount ($)
0 1 33489.47
1 2 33927.04
* Lister par ordre décroissant le top 5 des catégories ayant le plus des revenues. RQ utiliser les tables : category, film_category, inventory, payment, et rental.
query =#TBD


sql_to_df(query).head()
Category Name Revenue
0 Sports 5314.21
1 Sci-Fi 4756.98
2 Animation 4656.30
3 Drama 4587.39
4 Comedy 4383.58

Bon travail!