SQL

  • Aujourd'hui, les bases des requêtes SQL
  • Il restera le schéma relationnel, et l'algèbre relationnelle
  • Ainsi que, pour les requêtes SQL : les agrégats et les jointures.

JupyterHub

  • Dans JupyterHub, chaque cellule doit commencer par %%sql.
  • C'est juste pour que ça fonctionne dans le notebook, ça ne fait pas partie de la requête SQL hein.
  • Image qui récapitule toutes les données de cette base de donnée : recap-cinema
  • Identifiants : personne.idp (personne) correspond à : film.idr (réalisateur) et jouer.ida (acteur)

Comme d'habitude Ctrl-Shit pour exécuter le contenu d'une cellule.

In [1]:
%reload_ext sql
%config SqlMagic.displaycon = False

%sql sqlite:////media/cinema.db

Si vous oubliez %%sql -> invalid syntax

In [33]:
SELECT *
FROM film
  File "<ipython-input-33-f8cf37093f2c>", line 1
    SELECT *
            ^
SyntaxError: invalid syntax

Projection : SELECT, FROM, AS.

In [2]:
%%sql

SELECT titre, genre        -- projection
FROM film;
Done.
Out[2]:
titre genre
Crash Drame
Faux-Semblants Epouvante
Pulp Fiction Policier
Breaking the waves Drame
Dogville Drame
Alamo Western
Dangereusement vôtre Espionnage
Chasseur blanc, coeur noir Drame
Minuit dans le jardin du bien et du mal Policier
American Beauty Drame
L'Echange Drame
In [3]:
%%sql

SELECT *         -- tous les attributs
FROM film;
Done.
Out[3]:
idf idr titre genre annee
1 15 Crash Drame 1996
2 15 Faux-Semblants Epouvante 1988
3 14 Pulp Fiction Policier 1994
4 13 Breaking the waves Drame 1996
5 13 Dogville Drame 2002
6 12 Alamo Western 1960
7 18 Dangereusement vôtre Espionnage 1985
8 19 Chasseur blanc, coeur noir Drame 1989
9 19 Minuit dans le jardin du bien et du mal Policier 1998
10 21 American Beauty Drame 1999
11 19 L'Echange Drame 2008
In [4]:
%%sql

SELECT film.titre, film.genre          -- table.attribut
FROM film;
Done.
Out[4]:
titre genre
Crash Drame
Faux-Semblants Epouvante
Pulp Fiction Policier
Breaking the waves Drame
Dogville Drame
Alamo Western
Dangereusement vôtre Espionnage
Chasseur blanc, coeur noir Drame
Minuit dans le jardin du bien et du mal Policier
American Beauty Drame
L'Echange Drame
In [5]:
%%sql

SELECT f.titre, f.genre          -- table renommée avec AS
FROM film AS f;
Done.
Out[5]:
titre genre
Crash Drame
Faux-Semblants Epouvante
Pulp Fiction Policier
Breaking the waves Drame
Dogville Drame
Alamo Western
Dangereusement vôtre Espionnage
Chasseur blanc, coeur noir Drame
Minuit dans le jardin du bien et du mal Policier
American Beauty Drame
L'Echange Drame

Modifier le résultat : SELECT DISTINCT, ORDER BY, LIMIT.

In [6]:
%%sql

SELECT DISTINCT prenom       -- SELECT DISTINCT : pas deux lignes identiques (toute la ligne)
FROM personne
ORDER BY prenom              -- ORDER BY : trier
LIMIT 5;                     -- LIMITT : les premiers résultats seulement
Done.
Out[6]:
prenom
Angelina
Bruce
Clint
David
Emily

Sélection : WHERE ; booléens

In [7]:
%%sql

SELECT *
FROM personne
WHERE prenom="John";     -- attention aux chaînes de caractères ; égalité : =
Done.
Out[7]:
idp nom prenom
5 Travolta John
12 Wayne John
18 Glen John
In [8]:
%%sql

SELECT *
FROM personne
WHERE prenom="John" OR nom LIKE "W%"
ORDER BY prenom ASC, nom DESC;
Done.
Out[8]:
idp nom prenom
7 Willis Bruce
3 Watson Emily
12 Wayne John
5 Travolta John
18 Glen John
In [9]:
%%sql

SELECT titre, genre, annee
FROM film
WHERE 1950 < annee AND annee < 2000;    -- pas 1950 < annee < 2000 comme en Python
Done.
Out[9]:
titre genre annee
Crash Drame 1996
Faux-Semblants Epouvante 1988
Pulp Fiction Policier 1994
Breaking the waves Drame 1996
Alamo Western 1960
Dangereusement vôtre Espionnage 1985
Chasseur blanc, coeur noir Drame 1989
Minuit dans le jardin du bien et du mal Policier 1998
American Beauty Drame 1999

Types / Domaine

text
integer
float
bool
date : "2020-01-31"

Syntaxe

Facultatif mais conseillé

  • Revenir à la ligne régulièrement et indentation
  • Mots-clés en majuscule
  • Point-virgule à la fin

Calculs simples, sur chaque ligne

In [10]:
%%sql
-- ça n'a aucun sens hein

SELECT idf, idr, idf+idr, idf/idr, 1.0*idf/idr, idf*idf + idr*idr
FROM film
Done.
Out[10]:
idf idr idf+idr idf/idr 1.0*idf/idr idf*idf + idr*idr
1 15 16 0 0.06666666666666667 226
2 15 17 0 0.13333333333333333 229
3 14 17 0 0.21428571428571427 205
4 13 17 0 0.3076923076923077 185
5 13 18 0 0.38461538461538464 194
6 12 18 0 0.5 180
7 18 25 0 0.3888888888888889 373
8 19 27 0 0.42105263157894735 425
9 19 28 0 0.47368421052631576 442
10 21 31 0 0.47619047619047616 541
11 19 30 0 0.5789473684210527 482

Requêtes imbriquées

  • On verra plus tard les JOINTURES, beaucoup plus pratiques
  • Il faut mettre des parenthèses
  • Ne pas aller regarder vous même l'identifiant : il faut faire une requête imbriquée
  • Ne pas raisonner uniquement sur les exemples donnés..
In [11]:
%%sql

SELECT idp
FROM personne
WHERE nom="Cronenberg" AND prenom="David"
Done.
Out[11]:
idp
15
In [12]:
%%sql

SELECT *
FROM film
WHERE idr=(
    SELECT idp
    FROM personne
    WHERE nom="Cronenberg" AND prenom="David"
);
Done.
Out[12]:
idf idr titre genre annee
1 15 Crash Drame 1996
2 15 Faux-Semblants Epouvante 1988

Union, Intersection, Except

  • Pas de parenthèses, c'est un peu conte-intuitif...
In [13]:
%%sql

SELECT * FROM personne WHERE prenom="John"
EXCEPT
SELECT * FROM personne WHERE nom="Wayne"
Done.
Out[13]:
idp nom prenom
5 Travolta John
18 Glen John
In [14]:
%%sql

SELECT * FROM personne WHERE prenom LIKE "J%"
UNION
SELECT * FROM personne WHERE nom LIKE "W%"
Done.
Out[14]:
idp nom prenom
3 Watson Emily
5 Travolta John
7 Willis Bruce
8 Irons Jeremy
9 Spader James
12 Wayne John
18 Glen John
In [15]:
%%sql

SELECT * FROM personne WHERE prenom LIKE "J%"
INTERSECT
SELECT * FROM personne WHERE nom LIKE "W%"
Done.
Out[15]:
idp nom prenom
12 Wayne John
In [16]:
%%sql

SELECT nom FROM personne
UNION
SELECT nom FROM cinema
Done.
Out[16]:
nom
Arquette
Astoria
Bettany
Comedia
Cronenberg
Eastwood
Glen
Hunter
Irons
Jolie
Jones
Kidman
L. Jackson
Mazursky
Mendes
Pathé
Skarsgard
Spacey
Spader
Tarantino
Travolta
UGC
Watson
Wayne
Willis
von Trier

Agrégats

MIN, MAX, SUM, AVG, COUNT

In [17]:
%%sql

SELECT MIN(idp), MAX(idp), SUM(idp), AVG(idp), COUNT(idp), COUNT(DISTINCT idp), COUNt(*)
FROM personne
Done.
Out[17]:
MIN(idp) MAX(idp) SUM(idp) AVG(idp) COUNT(idp) COUNT(DISTINCT idp) COUNt(*)
1 22 253 11.5 22 22 22
In [18]:
%%sql

SELECT MIN(idp), MAX(idp), SUM(idp), AVG(idp), COUNT(idp), COUNT(DISTINCT idp), COUNt(*)
FROM personne
WHERE personne.prenom="John"
Done.
Out[18]:
MIN(idp) MAX(idp) SUM(idp) AVG(idp) COUNT(idp) COUNT(DISTINCT idp) COUNt(*)
5 18 35 11.666666666666666 3 3 3
In [19]:
%%sql

SELECT prenom, MIN(idp), MAX(idp), SUM(idp), AVG(idp), COUNT(idp), COUNT(DISTINCT idp), COUNt(*)
FROM personne
GROUP BY prenom
Done.
Out[19]:
prenom MIN(idp) MAX(idp) SUM(idp) AVG(idp) COUNT(idp) COUNT(DISTINCT idp) COUNt(*)
Angelina 22 22 22 22.0 1 1 1
Bruce 7 7 7 7.0 1 1 1
Clint 19 19 19 19.0 1 1 1
David 15 15 15 15.0 1 1 1
Emily 3 3 3 3.0 1 1 1
Grace 17 17 17 17.0 1 1 1
Holly 10 10 10 10.0 1 1 1
James 9 9 9 9.0 1 1 1
Jeremy 8 8 8 8.0 1 1 1
John 5 18 35 11.666666666666666 3 3 3
Kevin 20 20 20 20.0 1 1 1
Lars 13 13 13 13.0 1 1 1
Nicole 1 1 1 1.0 1 1 1
Paul 2 16 18 9.0 2 2 2
Quentin 14 14 14 14.0 1 1 1
Rosanna 11 11 11 11.0 1 1 1
Sam 21 21 21 21.0 1 1 1
Samuel 6 6 6 6.0 1 1 1
Stellan 4 4 4 4.0 1 1 1
In [20]:
%%sql

SELECT titre, genre, COUNT(*)
FROM film
WHERE annee > 1990
GROUP BY genre
Done.
Out[20]:
titre genre COUNT(*)
L'Echange Drame 5
Minuit dans le jardin du bien et du mal Policier 2
In [21]:
%%sql
SELECT MAX(annee), MIN(annee), COUNT(*), titre, annee
FROM film
GROUP BY genre
Done.
Out[21]:
MAX(annee) MIN(annee) COUNT(*) titre annee
2008 1989 6 Chasseur blanc, coeur noir 1989
1988 1988 1 Faux-Semblants 1988
1985 1985 1 Dangereusement vôtre 1985
1998 1994 2 Pulp Fiction 1994
1960 1960 1 Alamo 1960

Agrégats et MAX

In [22]:
%%sql

SELECT MAX(annee)
FROM film
Done.
Out[22]:
MAX(annee)
2008
In [27]:
%%sql

SELECT titre, annee, MAX(annee)
FROM film
Done.
Out[27]:
titre annee MAX(annee)
L'Echange 2008 2008
In [24]:
%%sql

SELECT *
FROM film
WHERE annee = (SELECT MAX(annee) FROM film)
Done.
Out[24]:
idf idr titre genre annee
11 19 L'Echange Drame 2008

Agrégats et Sélection : HAVING

  • Attention : WHERE et HAVING sont des sélections !
In [25]:
%%sql

SELECT genre, COUNT(*) AS c
FROM film
WHERE annee <= 2000     -- sélection
GROUP BY genre;
Done.
Out[25]:
genre c
Drame 4
Epouvante 1
Espionnage 1
Policier 2
Western 1
In [26]:
%%sql

SELECT genre, COUNT(*) AS c
FROM film
WHERE annee <= 2000     -- sélection
GROUP BY genre
HAVING c > 1;           -- sélection
Done.
Out[26]:
genre c
Drame 4
Policier 2

Jointure

In [30]:
%%sql 
SELECT *
FROM personne JOIN film
Done.
Out[30]:
idp nom prenom idf idr titre genre annee
1 Kidman Nicole 1 15 Crash Drame 1996
1 Kidman Nicole 2 15 Faux-Semblants Epouvante 1988
1 Kidman Nicole 3 14 Pulp Fiction Policier 1994
1 Kidman Nicole 4 13 Breaking the waves Drame 1996
1 Kidman Nicole 5 13 Dogville Drame 2002
1 Kidman Nicole 6 12 Alamo Western 1960
1 Kidman Nicole 7 18 Dangereusement vôtre Espionnage 1985
1 Kidman Nicole 8 19 Chasseur blanc, coeur noir Drame 1989
1 Kidman Nicole 9 19 Minuit dans le jardin du bien et du mal Policier 1998
1 Kidman Nicole 10 21 American Beauty Drame 1999
1 Kidman Nicole 11 19 L'Echange Drame 2008
2 Bettany Paul 1 15 Crash Drame 1996
2 Bettany Paul 2 15 Faux-Semblants Epouvante 1988
2 Bettany Paul 3 14 Pulp Fiction Policier 1994
2 Bettany Paul 4 13 Breaking the waves Drame 1996
2 Bettany Paul 5 13 Dogville Drame 2002
2 Bettany Paul 6 12 Alamo Western 1960
2 Bettany Paul 7 18 Dangereusement vôtre Espionnage 1985
2 Bettany Paul 8 19 Chasseur blanc, coeur noir Drame 1989
2 Bettany Paul 9 19 Minuit dans le jardin du bien et du mal Policier 1998
2 Bettany Paul 10 21 American Beauty Drame 1999
2 Bettany Paul 11 19 L'Echange Drame 2008
3 Watson Emily 1 15 Crash Drame 1996
3 Watson Emily 2 15 Faux-Semblants Epouvante 1988
3 Watson Emily 3 14 Pulp Fiction Policier 1994
3 Watson Emily 4 13 Breaking the waves Drame 1996
3 Watson Emily 5 13 Dogville Drame 2002
3 Watson Emily 6 12 Alamo Western 1960
3 Watson Emily 7 18 Dangereusement vôtre Espionnage 1985
3 Watson Emily 8 19 Chasseur blanc, coeur noir Drame 1989
3 Watson Emily 9 19 Minuit dans le jardin du bien et du mal Policier 1998
3 Watson Emily 10 21 American Beauty Drame 1999
3 Watson Emily 11 19 L'Echange Drame 2008
4 Skarsgard Stellan 1 15 Crash Drame 1996
4 Skarsgard Stellan 2 15 Faux-Semblants Epouvante 1988
4 Skarsgard Stellan 3 14 Pulp Fiction Policier 1994
4 Skarsgard Stellan 4 13 Breaking the waves Drame 1996
4 Skarsgard Stellan 5 13 Dogville Drame 2002
4 Skarsgard Stellan 6 12 Alamo Western 1960
4 Skarsgard Stellan 7 18 Dangereusement vôtre Espionnage 1985
4 Skarsgard Stellan 8 19 Chasseur blanc, coeur noir Drame 1989
4 Skarsgard Stellan 9 19 Minuit dans le jardin du bien et du mal Policier 1998
4 Skarsgard Stellan 10 21 American Beauty Drame 1999
4 Skarsgard Stellan 11 19 L'Echange Drame 2008
5 Travolta John 1 15 Crash Drame 1996
5 Travolta John 2 15 Faux-Semblants Epouvante 1988
5 Travolta John 3 14 Pulp Fiction Policier 1994
5 Travolta John 4 13 Breaking the waves Drame 1996
5 Travolta John 5 13 Dogville Drame 2002
5 Travolta John 6 12 Alamo Western 1960
5 Travolta John 7 18 Dangereusement vôtre Espionnage 1985
5 Travolta John 8 19 Chasseur blanc, coeur noir Drame 1989
5 Travolta John 9 19 Minuit dans le jardin du bien et du mal Policier 1998
5 Travolta John 10 21 American Beauty Drame 1999
5 Travolta John 11 19 L'Echange Drame 2008
6 L. Jackson Samuel 1 15 Crash Drame 1996
6 L. Jackson Samuel 2 15 Faux-Semblants Epouvante 1988
6 L. Jackson Samuel 3 14 Pulp Fiction Policier 1994
6 L. Jackson Samuel 4 13 Breaking the waves Drame 1996
6 L. Jackson Samuel 5 13 Dogville Drame 2002
6 L. Jackson Samuel 6 12 Alamo Western 1960
6 L. Jackson Samuel 7 18 Dangereusement vôtre Espionnage 1985
6 L. Jackson Samuel 8 19 Chasseur blanc, coeur noir Drame 1989
6 L. Jackson Samuel 9 19 Minuit dans le jardin du bien et du mal Policier 1998
6 L. Jackson Samuel 10 21 American Beauty Drame 1999
6 L. Jackson Samuel 11 19 L'Echange Drame 2008
7 Willis Bruce 1 15 Crash Drame 1996
7 Willis Bruce 2 15 Faux-Semblants Epouvante 1988
7 Willis Bruce 3 14 Pulp Fiction Policier 1994
7 Willis Bruce 4 13 Breaking the waves Drame 1996
7 Willis Bruce 5 13 Dogville Drame 2002
7 Willis Bruce 6 12 Alamo Western 1960
7 Willis Bruce 7 18 Dangereusement vôtre Espionnage 1985
7 Willis Bruce 8 19 Chasseur blanc, coeur noir Drame 1989
7 Willis Bruce 9 19 Minuit dans le jardin du bien et du mal Policier 1998
7 Willis Bruce 10 21 American Beauty Drame 1999
7 Willis Bruce 11 19 L'Echange Drame 2008
8 Irons Jeremy 1 15 Crash Drame 1996
8 Irons Jeremy 2 15 Faux-Semblants Epouvante 1988
8 Irons Jeremy 3 14 Pulp Fiction Policier 1994
8 Irons Jeremy 4 13 Breaking the waves Drame 1996
8 Irons Jeremy 5 13 Dogville Drame 2002
8 Irons Jeremy 6 12 Alamo Western 1960
8 Irons Jeremy 7 18 Dangereusement vôtre Espionnage 1985
8 Irons Jeremy 8 19 Chasseur blanc, coeur noir Drame 1989
8 Irons Jeremy 9 19 Minuit dans le jardin du bien et du mal Policier 1998
8 Irons Jeremy 10 21 American Beauty Drame 1999
8 Irons Jeremy 11 19 L'Echange Drame 2008
9 Spader James 1 15 Crash Drame 1996
9 Spader James 2 15 Faux-Semblants Epouvante 1988
9 Spader James 3 14 Pulp Fiction Policier 1994
9 Spader James 4 13 Breaking the waves Drame 1996
9 Spader James 5 13 Dogville Drame 2002
9 Spader James 6 12 Alamo Western 1960
9 Spader James 7 18 Dangereusement vôtre Espionnage 1985
9 Spader James 8 19 Chasseur blanc, coeur noir Drame 1989
9 Spader James 9 19 Minuit dans le jardin du bien et du mal Policier 1998
9 Spader James 10 21 American Beauty Drame 1999
9 Spader James 11 19 L'Echange Drame 2008
10 Hunter Holly 1 15 Crash Drame 1996
10 Hunter Holly 2 15 Faux-Semblants Epouvante 1988
10 Hunter Holly 3 14 Pulp Fiction Policier 1994
10 Hunter Holly 4 13 Breaking the waves Drame 1996
10 Hunter Holly 5 13 Dogville Drame 2002
10 Hunter Holly 6 12 Alamo Western 1960
10 Hunter Holly 7 18 Dangereusement vôtre Espionnage 1985
10 Hunter Holly 8 19 Chasseur blanc, coeur noir Drame 1989
10 Hunter Holly 9 19 Minuit dans le jardin du bien et du mal Policier 1998
10 Hunter Holly 10 21 American Beauty Drame 1999
10 Hunter Holly 11 19 L'Echange Drame 2008
11 Arquette Rosanna 1 15 Crash Drame 1996
11 Arquette Rosanna 2 15 Faux-Semblants Epouvante 1988
11 Arquette Rosanna 3 14 Pulp Fiction Policier 1994
11 Arquette Rosanna 4 13 Breaking the waves Drame 1996
11 Arquette Rosanna 5 13 Dogville Drame 2002
11 Arquette Rosanna 6 12 Alamo Western 1960
11 Arquette Rosanna 7 18 Dangereusement vôtre Espionnage 1985
11 Arquette Rosanna 8 19 Chasseur blanc, coeur noir Drame 1989
11 Arquette Rosanna 9 19 Minuit dans le jardin du bien et du mal Policier 1998
11 Arquette Rosanna 10 21 American Beauty Drame 1999
11 Arquette Rosanna 11 19 L'Echange Drame 2008
12 Wayne John 1 15 Crash Drame 1996
12 Wayne John 2 15 Faux-Semblants Epouvante 1988
12 Wayne John 3 14 Pulp Fiction Policier 1994
12 Wayne John 4 13 Breaking the waves Drame 1996
12 Wayne John 5 13 Dogville Drame 2002
12 Wayne John 6 12 Alamo Western 1960
12 Wayne John 7 18 Dangereusement vôtre Espionnage 1985
12 Wayne John 8 19 Chasseur blanc, coeur noir Drame 1989
12 Wayne John 9 19 Minuit dans le jardin du bien et du mal Policier 1998
12 Wayne John 10 21 American Beauty Drame 1999
12 Wayne John 11 19 L'Echange Drame 2008
13 von Trier Lars 1 15 Crash Drame 1996
13 von Trier Lars 2 15 Faux-Semblants Epouvante 1988
13 von Trier Lars 3 14 Pulp Fiction Policier 1994
13 von Trier Lars 4 13 Breaking the waves Drame 1996
13 von Trier Lars 5 13 Dogville Drame 2002
13 von Trier Lars 6 12 Alamo Western 1960
13 von Trier Lars 7 18 Dangereusement vôtre Espionnage 1985
13 von Trier Lars 8 19 Chasseur blanc, coeur noir Drame 1989
13 von Trier Lars 9 19 Minuit dans le jardin du bien et du mal Policier 1998
13 von Trier Lars 10 21 American Beauty Drame 1999
13 von Trier Lars 11 19 L'Echange Drame 2008
14 Tarantino Quentin 1 15 Crash Drame 1996
14 Tarantino Quentin 2 15 Faux-Semblants Epouvante 1988
14 Tarantino Quentin 3 14 Pulp Fiction Policier 1994
14 Tarantino Quentin 4 13 Breaking the waves Drame 1996
14 Tarantino Quentin 5 13 Dogville Drame 2002
14 Tarantino Quentin 6 12 Alamo Western 1960
14 Tarantino Quentin 7 18 Dangereusement vôtre Espionnage 1985
14 Tarantino Quentin 8 19 Chasseur blanc, coeur noir Drame 1989
14 Tarantino Quentin 9 19 Minuit dans le jardin du bien et du mal Policier 1998
14 Tarantino Quentin 10 21 American Beauty Drame 1999
14 Tarantino Quentin 11 19 L'Echange Drame 2008
15 Cronenberg David 1 15 Crash Drame 1996
15 Cronenberg David 2 15 Faux-Semblants Epouvante 1988
15 Cronenberg David 3 14 Pulp Fiction Policier 1994
15 Cronenberg David 4 13 Breaking the waves Drame 1996
15 Cronenberg David 5 13 Dogville Drame 2002
15 Cronenberg David 6 12 Alamo Western 1960
15 Cronenberg David 7 18 Dangereusement vôtre Espionnage 1985
15 Cronenberg David 8 19 Chasseur blanc, coeur noir Drame 1989
15 Cronenberg David 9 19 Minuit dans le jardin du bien et du mal Policier 1998
15 Cronenberg David 10 21 American Beauty Drame 1999
15 Cronenberg David 11 19 L'Echange Drame 2008
16 Mazursky Paul 1 15 Crash Drame 1996
16 Mazursky Paul 2 15 Faux-Semblants Epouvante 1988
16 Mazursky Paul 3 14 Pulp Fiction Policier 1994
16 Mazursky Paul 4 13 Breaking the waves Drame 1996
16 Mazursky Paul 5 13 Dogville Drame 2002
16 Mazursky Paul 6 12 Alamo Western 1960
16 Mazursky Paul 7 18 Dangereusement vôtre Espionnage 1985
16 Mazursky Paul 8 19 Chasseur blanc, coeur noir Drame 1989
16 Mazursky Paul 9 19 Minuit dans le jardin du bien et du mal Policier 1998
16 Mazursky Paul 10 21 American Beauty Drame 1999
16 Mazursky Paul 11 19 L'Echange Drame 2008
17 Jones Grace 1 15 Crash Drame 1996
17 Jones Grace 2 15 Faux-Semblants Epouvante 1988
17 Jones Grace 3 14 Pulp Fiction Policier 1994
17 Jones Grace 4 13 Breaking the waves Drame 1996
17 Jones Grace 5 13 Dogville Drame 2002
17 Jones Grace 6 12 Alamo Western 1960
17 Jones Grace 7 18 Dangereusement vôtre Espionnage 1985
17 Jones Grace 8 19 Chasseur blanc, coeur noir Drame 1989
17 Jones Grace 9 19 Minuit dans le jardin du bien et du mal Policier 1998
17 Jones Grace 10 21 American Beauty Drame 1999
17 Jones Grace 11 19 L'Echange Drame 2008
18 Glen John 1 15 Crash Drame 1996
18 Glen John 2 15 Faux-Semblants Epouvante 1988
18 Glen John 3 14 Pulp Fiction Policier 1994
18 Glen John 4 13 Breaking the waves Drame 1996
18 Glen John 5 13 Dogville Drame 2002
18 Glen John 6 12 Alamo Western 1960
18 Glen John 7 18 Dangereusement vôtre Espionnage 1985
18 Glen John 8 19 Chasseur blanc, coeur noir Drame 1989
18 Glen John 9 19 Minuit dans le jardin du bien et du mal Policier 1998
18 Glen John 10 21 American Beauty Drame 1999
18 Glen John 11 19 L'Echange Drame 2008
19 Eastwood Clint 1 15 Crash Drame 1996
19 Eastwood Clint 2 15 Faux-Semblants Epouvante 1988
19 Eastwood Clint 3 14 Pulp Fiction Policier 1994
19 Eastwood Clint 4 13 Breaking the waves Drame 1996
19 Eastwood Clint 5 13 Dogville Drame 2002
19 Eastwood Clint 6 12 Alamo Western 1960
19 Eastwood Clint 7 18 Dangereusement vôtre Espionnage 1985
19 Eastwood Clint 8 19 Chasseur blanc, coeur noir Drame 1989
19 Eastwood Clint 9 19 Minuit dans le jardin du bien et du mal Policier 1998
19 Eastwood Clint 10 21 American Beauty Drame 1999
19 Eastwood Clint 11 19 L'Echange Drame 2008
20 Spacey Kevin 1 15 Crash Drame 1996
20 Spacey Kevin 2 15 Faux-Semblants Epouvante 1988
20 Spacey Kevin 3 14 Pulp Fiction Policier 1994
20 Spacey Kevin 4 13 Breaking the waves Drame 1996
20 Spacey Kevin 5 13 Dogville Drame 2002
20 Spacey Kevin 6 12 Alamo Western 1960
20 Spacey Kevin 7 18 Dangereusement vôtre Espionnage 1985
20 Spacey Kevin 8 19 Chasseur blanc, coeur noir Drame 1989
20 Spacey Kevin 9 19 Minuit dans le jardin du bien et du mal Policier 1998
20 Spacey Kevin 10 21 American Beauty Drame 1999
20 Spacey Kevin 11 19 L'Echange Drame 2008
21 Mendes Sam 1 15 Crash Drame 1996
21 Mendes Sam 2 15 Faux-Semblants Epouvante 1988
21 Mendes Sam 3 14 Pulp Fiction Policier 1994
21 Mendes Sam 4 13 Breaking the waves Drame 1996
21 Mendes Sam 5 13 Dogville Drame 2002
21 Mendes Sam 6 12 Alamo Western 1960
21 Mendes Sam 7 18 Dangereusement vôtre Espionnage 1985
21 Mendes Sam 8 19 Chasseur blanc, coeur noir Drame 1989
21 Mendes Sam 9 19 Minuit dans le jardin du bien et du mal Policier 1998
21 Mendes Sam 10 21 American Beauty Drame 1999
21 Mendes Sam 11 19 L'Echange Drame 2008
22 Jolie Angelina 1 15 Crash Drame 1996
22 Jolie Angelina 2 15 Faux-Semblants Epouvante 1988
22 Jolie Angelina 3 14 Pulp Fiction Policier 1994
22 Jolie Angelina 4 13 Breaking the waves Drame 1996
22 Jolie Angelina 5 13 Dogville Drame 2002
22 Jolie Angelina 6 12 Alamo Western 1960
22 Jolie Angelina 7 18 Dangereusement vôtre Espionnage 1985
22 Jolie Angelina 8 19 Chasseur blanc, coeur noir Drame 1989
22 Jolie Angelina 9 19 Minuit dans le jardin du bien et du mal Policier 1998
22 Jolie Angelina 10 21 American Beauty Drame 1999
22 Jolie Angelina 11 19 L'Echange Drame 2008
In [31]:
%%sql

SELECT *
FROM personne JOIN film ON personne.idp = film.idr
Done.
Out[31]:
idp nom prenom idf idr titre genre annee
12 Wayne John 6 12 Alamo Western 1960
13 von Trier Lars 4 13 Breaking the waves Drame 1996
13 von Trier Lars 5 13 Dogville Drame 2002
14 Tarantino Quentin 3 14 Pulp Fiction Policier 1994
15 Cronenberg David 1 15 Crash Drame 1996
15 Cronenberg David 2 15 Faux-Semblants Epouvante 1988
18 Glen John 7 18 Dangereusement vôtre Espionnage 1985
19 Eastwood Clint 8 19 Chasseur blanc, coeur noir Drame 1989
19 Eastwood Clint 11 19 L'Echange Drame 2008
19 Eastwood Clint 9 19 Minuit dans le jardin du bien et du mal Policier 1998
21 Mendes Sam 10 21 American Beauty Drame 1999
In [34]:
%%sql 

SELECT *
FROM personne AS p
    JOIN jouer AS j
    ON p.idp = j.ida
Done.
Out[34]:
idp nom prenom ida idf role
1 Kidman Nicole 1 5 Grace
2 Bettany Paul 2 5 Tom Edison
3 Watson Emily 3 4 Bess
4 Skarsgard Stellan 4 4 Jan
4 Skarsgard Stellan 4 5 Chuck
5 Travolta John 5 3 Vincent Vega
6 L. Jackson Samuel 6 3 Jules Winnfield
7 Willis Bruce 7 3 Butch Coolidge
8 Irons Jeremy 8 2 Beverly & Elliot Mantle
9 Spader James 9 1 James Ballard
10 Hunter Holly 10 1 Helen Remington
11 Arquette Rosanna 11 1 Gabrielle
16 Mazursky Paul 16 7 May Day
19 Eastwood Clint 19 8 John Wilson
20 Spacey Kevin 20 9 Jim Williams
20 Spacey Kevin 20 10 Lester Burnham
In [ ]: