SQL¶
le langage utilisé pour manipuler les données dans une bases de données relationnelle est le SQL (Structured Query Language). Les bases du SQL sont facile à comprendre (en principe). Certaines opérations peuvent être complexes mais elles sont hors programme.
C’est un langage déclaratif, c’est-à-dire qu’il permet de décrire le résultat escompté, sans décrire la manière de l’obtenir. Il n'est pas sensible à la casse, mais a l’habitude d’écrire les instructions en majuscules, chaque instruction doit être terminée par un point-virgule.
Nous verrons en particulier cette année les instructions de manipulation du contenu de la base de données qui commencent par les mots clés:
SELECT: recherche de contenu.
UPDATE: modification.
INSERT: ajout.
DELETE suppression.
Découverte¶
Pour découvrir la syntaxe de SQL vous pouvez commencer avec ce petit jeu :
https://sql-island.informatik.uni-kl.de/
Syntaxe¶
Ce TP est basé sur (très largement modifié) : http://hmalherbe.fr/thalesm/gestclasse/documents/Terminale_NSI/2020-2021/TP/TP_Term_NSI_SQL/TP_Term_NSI_BDD_SQL.html
Nous allons utiliser DB Browser
ou https://sqliteonline.com/
Nous allons travailler avec une base de données qui contient les 100 films ayant fait le plus d'entrées dans les salles de cinéma en France.
Voici le schéma de la base de données utilisée :
Ce schéma comporte les tables suivantes :
La table Film qui contient les champs suivants :
- id_film : l'identifiant unique d'un film (la clef primaire de la table, un champ de type entier)
- id_realisateur : un identifiant du réalisateur (principal) du film
C'est une clef étrangère qui pointe vers la clef primaire id_realisateur de la table Realisateur
- Titre : Le titre du film (un champ de type texte)
- Annee_sortie : L'année de sortie du film (un champ de type entier)
- Entrees : Le nombre cumulées d'entrées dans les salles en France
depuis la sortie du film (un champ de type entier)
La table Realisateur qui contient les champs suivants :
- id_realisateur : l'identifiant unique d'un réalisateur (la clef primaire de la table, un champ de type entier)
- Prenom : le prénom d'un réalisateur (un champ de type texte)
- Nom : le nom d'un réalisateur (un champ de type texte)
- Date_naissance : la date de naissance du réalisateur (un champ de type date)
- id_pays : un identifiant du pays du réalisateur (sa nationalité),
c'est une clef étrangère qui pointe vers la clef primaire id_pays de la table Pays
La table Pays qui contient les champs suivants :
- id_pays : l'identifiant unique d'un pays (la clef primaire de la table, un champ de type entier)
- Nom : le nom du pays (un champ de type texte)
- Capitale : la capitale du pays (un champ de type date)
- Nombre_habitants : le nombre d'habitants du pays (un champ de type texte)
La table PaysFilm qui contient les champs suivants :
- id_paysFilm : un identifiant unique (la clef primaire de la table, un champ de type entier)
- id_pays : un identifiant d'un des pays d'origine du Film,
c'est une clef étrangère qui pointe vers la clef primaire id_pays de la table Pays
- id_paysFilm : un identifiant unique (la clef primaire de la table, un champ de type entier)
- id_film : un identifiant du film,
c'est une clef étrangère qui pointe vers la clef primaire id_film de la table Film
Remarque : la table PaysFilm permet de modéliser la relation de cardinalité n-m entre les tables Film et Pays sachant qu'un film peut être co-produit par plusieurs pays.
Expliquez le sens de cette remarque.
CREATE TABLE¶
Créer ces tables :
CREATE TABLE IF NOT EXISTS "Pays" (
"id_pays" INTEGER,
"Nom" TEXT,
"Capitale" TEXT,
"Nombre_habitants" TEXT,
PRIMARY KEY("id_pays" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "Film" (
"id_film" INTEGER,
"id_realisateur" INTEGER,
"Titre" TEXT,
"Annee_sortie" INTEGER,
"Entrees_salle" INTEGER,
PRIMARY KEY("id_film" AUTOINCREMENT),
FOREIGN KEY("id_realisateur") REFERENCES "Realisateur"("id_realisateur")
);
CREATE TABLE IF NOT EXISTS "PaysFilm" (
"id_PaysFilm" INTEGER,
"id_film" INTEGER,
"id_pays" INTEGER,
PRIMARY KEY("id_PaysFilm" AUTOINCREMENT),
FOREIGN KEY("id_film") REFERENCES "Film"("id_film"),
FOREIGN KEY("id_pays") REFERENCES "Pays"("id_pays")
);
CREATE TABLE IF NOT EXISTS "Realisateur" (
"id_realisateur" INTEGER,
"Prenom" TEXT,
"Nom" TEXT,
"Date_naissance" TEXT,
"id_pays" INTEGER,
PRIMARY KEY("id_realisateur" AUTOINCREMENT),
FOREIGN KEY("id_pays") REFERENCES "Pays"("id_pays")
);
INSERT¶
Insérer des données : cliquer ici et exécuter ce script
INSERT INTO "Pays" VALUES (1,'USA','New-York','331002651');
INSERT INTO "Pays" VALUES (2,'FRANCE','Paris','65273511');
INSERT INTO "Pays" VALUES (3,'ROYAUME UNI','Londres','67886011');
INSERT INTO "Pays" VALUES (4,'ITALIE','Rome','60273511');
INSERT INTO "Pays" VALUES (5,'ALLEMAGNE','Berlin','83783942');
INSERT INTO "Pays" VALUES (6,'SUISSE','Genève','8654622');
INSERT INTO "Pays" VALUES (7,'NOUVELLE-ZELANDE','Wellington','4822233');
INSERT INTO "Pays" VALUES (8,'RDA','Berlin',NULL);
INSERT INTO "Pays" VALUES (9,'BELGIQUE','Bruxelles','11589623');
INSERT INTO "Pays" VALUES (10,'ESPAGNE','Madrid','46754778');
INSERT INTO "Pays" VALUES (11,'POLOGNE','Varsovie','37846611');
INSERT INTO "Pays" VALUES (12,'CANADA','Ottawa','37742154');
INSERT INTO "Pays" VALUES (13,'HONGRIE','Budapest','9660351');
INSERT INTO "Pays" VALUES (14,'MEXIQUE','Mexico','128932753');
INSERT INTO "Pays" VALUES (15,'BRESIL','Brasilia','212559417');
INSERT INTO "Pays" VALUES (16,'AUSTRALIE','Camberra','25499884');
INSERT INTO "Film" VALUES (1,55,'Aladdin',1993,7308092);
INSERT INTO "Film" VALUES (2,68,'Astérix aux Jeux olympiques',2008,6803760);
INSERT INTO "Film" VALUES (3,36,'Astérix et Obélix contre César',1999,8777904);
INSERT INTO "Film" VALUES (4,10,'Astérix et Obélix : Mission Cléopâtre',2002,14314786);
INSERT INTO "Film" VALUES (5,6,'Autant en emporte le vent',1950,16723795);
INSERT INTO "Film" VALUES (6,1,'Avatar',2009,14677888);
INSERT INTO "Film" VALUES (7,67,'Avengers : Endgame',2019,6934920);
INSERT INTO "Film" VALUES (8,4,'Bambi',1948,10679024);
INSERT INTO "Film" VALUES (9,12,'Ben-Hur',1960,13853547);
INSERT INTO "Film" VALUES (10,2,'Bienvenue chez les Ch''tis',2008,20413165);
INSERT INTO "Film" VALUES (11,4,'Blanche-Neige et les Sept Nains',1938,18319651);
INSERT INTO "Film" VALUES (12,9,'Cendrillon',1950,13216631);
INSERT INTO "Film" VALUES (13,56,'Danse avec les loups',1991,7280823);
INSERT INTO "Film" VALUES (14,28,'E.T. l''extra-terrestre',1982,9420339);
INSERT INTO "Film" VALUES (15,34,'Emmanuelle',1974,8893996);
INSERT INTO "Film" VALUES (16,71,'Fanfan la Tulipe',1952,6733287);
INSERT INTO "Film" VALUES (17,73,'Goldfinger',1965,6675099);
INSERT INTO "Film" VALUES (18,29,'Harry Potter et la Chambre des secrets',2002,8756449);
INSERT INTO "Film" VALUES (19,51,'Harry Potter et la Coupe de feu',2005,7635425);
INSERT INTO "Film" VALUES (20,63,'Harry Potter et le Prisonnier d''Azkaban',2004,7060057);
INSERT INTO "Film" VALUES (21,29,'Harry Potter à l''école des sorciers',2001,9359812);
INSERT INTO "Film" VALUES (22,7,'Il était une fois dans l''Ouest',1968,14873304);
INSERT INTO "Film" VALUES (23,3,'Intouchables',2011,19385300);
INSERT INTO "Film" VALUES (24,60,'Jean de Florette',1986,7223657);
INSERT INTO "Film" VALUES (25,6,'Jeanne d''Arc',1949,7092574);
INSERT INTO "Film" VALUES (26,62,'Jour de fête',1949,7065849);
INSERT INTO "Film" VALUES (27,48,'L''Age de Glace 2',2006,6626958);
INSERT INTO "Film" VALUES (28,33,'L''Ours',1988,9136266);
INSERT INTO "Film" VALUES (29,48,'L''Âge de glace 3 : le Temps des dinosaures',2009,7800570);
INSERT INTO "Film" VALUES (30,77,'L''Âge de glace 4 : La Dérive des continents',2012,6588883);
INSERT INTO "Film" VALUES (31,9,'La Belle et le Clochard',1955,11176138);
INSERT INTO "Film" VALUES (32,53,'La Famille Bélier',2014,7449207);
INSERT INTO "Film" VALUES (33,5,'La Grande Vadrouille',1966,17273065);
INSERT INTO "Film" VALUES (34,37,'La Grande Évasion',1963,8755029);
INSERT INTO "Film" VALUES (35,26,'La Guerre des boutons',1962,9975148);
INSERT INTO "Film" VALUES (36,50,'La Reine des Neiges 2',2019,7646432);
INSERT INTO "Film" VALUES (37,35,'La Vache et le Prisonnier',1959,8849752);
INSERT INTO "Film" VALUES (38,54,'La Vérité si je mens ! 2',2001,7404014);
INSERT INTO "Film" VALUES (39,39,'Le Bataillon du ciel',1947,8649691);
INSERT INTO "Film" VALUES (40,69,'Le Bossu de Notre-Dame',1996,6803327);
INSERT INTO "Film" VALUES (41,76,'Le Cercle des poètes disparus',1990,6598785);
INSERT INTO "Film" VALUES (42,31,'Le Cinquième Élément',1997,7704669);
INSERT INTO "Film" VALUES (43,5,'Le Corniaud',1965,11739783);
INSERT INTO "Film" VALUES (44,42,'Le Dictateur',1945,8287978);
INSERT INTO "Film" VALUES (45,14,'Le Docteur Jivago',1966,9816054);
INSERT INTO "Film" VALUES (46,30,'Le Dîner de cons',1998,9247509);
INSERT INTO "Film" VALUES (47,40,'Le Fabuleux Destin d''Amélie Poulain',2001,8516999);
INSERT INTO "Film" VALUES (48,47,'Le Gendarme de Saint-Tropez',1964,7809334);
INSERT INTO "Film" VALUES (49,31,'Le Grand Bleu',1988,9194796);
INSERT INTO "Film" VALUES (50,18,'Le Jour le plus long',1962,11933629);
INSERT INTO "Film" VALUES (51,8,'Le Livre de la jungle',1967,15696567);
INSERT INTO "Film" VALUES (52,32,'Le Monde de Nemo',2003,9179571);
INSERT INTO "Film" VALUES (53,16,'Le Petit Monde de don Camillo',1952,12790676);
INSERT INTO "Film" VALUES (54,14,'Le Pont de la rivière Kwaï',1957,13475099);
INSERT INTO "Film" VALUES (55,16,'Le Retour de don Camillo',1953,7425550);
INSERT INTO "Film" VALUES (56,24,'Le Roi lion (1994)',1994,10137385);
INSERT INTO "Film" VALUES (57,25,'Le Roi lion (2019)',2019,10007043);
INSERT INTO "Film" VALUES (58,57,'Le Seigneur des anneaux : La Communauté de l''anneau',2001,6827834);
INSERT INTO "Film" VALUES (59,57,'Le Seigneur des anneaux : Le Retour du roi',2003,7256353);
INSERT INTO "Film" VALUES (60,57,'Le Seigneur des anneaux : Les Deux Tours',2002,7069149);
INSERT INTO "Film" VALUES (61,47,'Le gendarme se marie',1968,6828626);
INSERT INTO "Film" VALUES (62,9,'Les 101 Dalmatiens',1961,14660594);
INSERT INTO "Film" VALUES (63,8,'Les Aristochats',1971,12541369);
INSERT INTO "Film" VALUES (64,59,'Les Aventures de Bernard et Bianca',1977,7229087);
INSERT INTO "Film" VALUES (65,5,'Les Aventures de Rabbi Jacob',1973,7295727);
INSERT INTO "Film" VALUES (66,36,'Les Bidasses en folie',1971,7460911);
INSERT INTO "Film" VALUES (67,20,'Les Bronzés 3 : Amis pour la vie',2006,10260902);
INSERT INTO "Film" VALUES (68,23,'Les Canons de Navarone',1961,10181209);
INSERT INTO "Film" VALUES (69,41,'Les Choristes',2004,8451680);
INSERT INTO "Film" VALUES (70,13,'Les Couloirs du temps : Les Visiteurs 2',1998,8038852);
INSERT INTO "Film" VALUES (71,11,'Les Dix Commandements',1956,14229563);
INSERT INTO "Film" VALUES (72,47,'Les Grandes Vacances',1967,6986777);
INSERT INTO "Film" VALUES (73,27,'Les Misérables',1957,9966274);
INSERT INTO "Film" VALUES (74,37,'Les Sept Mercenaires',1961,7047964);
INSERT INTO "Film" VALUES (75,74,'Les Trois Frères',1995,6667549);
INSERT INTO "Film" VALUES (76,13,'Les Visiteurs',1993,13671595);
INSERT INTO "Film" VALUES (77,60,'Manon des sources',1986,6645177);
INSERT INTO "Film" VALUES (78,70,'Mission spéciale',1946,6781120);
INSERT INTO "Film" VALUES (79,64,'Monsieur Vincent',1947,7055290);
INSERT INTO "Film" VALUES (80,75,'Nous irons à Paris',1950,6658693);
INSERT INTO "Film" VALUES (81,52,'Orange mécanique',1972,7611645);
INSERT INTO "Film" VALUES (82,43,'Pour qui sonne le glas',1947,8274596);
INSERT INTO "Film" VALUES (83,17,'Qu''est-ce qu''on a encore fait au Bon Dieu ?',2019,6668597);
INSERT INTO "Film" VALUES (84,17,'Qu''est-ce qu''on a fait au Bon Dieu ?',2014,12237274);
INSERT INTO "Film" VALUES (85,45,'Ratatouille',2007,7824208);
INSERT INTO "Film" VALUES (86,2,'Rien à déclarer',2011,8073402);
INSERT INTO "Film" VALUES (87,72,'Rox et Rouky',1981,6694661);
INSERT INTO "Film" VALUES (88,61,'Shrek 2',2004,7120257);
INSERT INTO "Film" VALUES (89,66,'Si Versailles m''était conté...',1954,6986788);
INSERT INTO "Film" VALUES (90,49,'Sixième Sens',2000,7754617);
INSERT INTO "Film" VALUES (91,65,'Skyfall',2012,6989740);
INSERT INTO "Film" VALUES (92,11,'Sous le plus grand chapiteau du monde',1952,9488114);
INSERT INTO "Film" VALUES (93,58,'Star Wars, épisode III : La Revanche des Sith',2005,7230417);
INSERT INTO "Film" VALUES (94,19,'Star Wars, épisode VII : Le Réveil de la Force',2015,10466198);
INSERT INTO "Film" VALUES (95,46,'Tarzan',1999,7819775);
INSERT INTO "Film" VALUES (96,22,'Taxi 2',2000,10239830);
INSERT INTO "Film" VALUES (97,1,'Titanic',1997,20634793);
INSERT INTO "Film" VALUES (98,21,'Trois hommes et un couffin',1985,10251465);
INSERT INTO "Film" VALUES (99,44,'Un Indien dans la ville',1994,7887966);
INSERT INTO "Film" VALUES (100,38,'West Side Story',1962,8752752);
INSERT INTO "PaysFilm" VALUES (1,1,1);
INSERT INTO "PaysFilm" VALUES (2,2,2);
INSERT INTO "PaysFilm" VALUES (3,2,5);
INSERT INTO "PaysFilm" VALUES (4,2,4);
INSERT INTO "PaysFilm" VALUES (5,2,10);
INSERT INTO "PaysFilm" VALUES (6,3,2);
INSERT INTO "PaysFilm" VALUES (7,3,5);
INSERT INTO "PaysFilm" VALUES (8,3,4);
INSERT INTO "PaysFilm" VALUES (9,4,2);
INSERT INTO "PaysFilm" VALUES (10,4,5);
INSERT INTO "PaysFilm" VALUES (11,5,1);
INSERT INTO "PaysFilm" VALUES (12,6,1);
INSERT INTO "PaysFilm" VALUES (13,7,1);
INSERT INTO "PaysFilm" VALUES (14,8,1);
INSERT INTO "PaysFilm" VALUES (15,9,1);
INSERT INTO "PaysFilm" VALUES (16,10,2);
INSERT INTO "PaysFilm" VALUES (17,11,1);
INSERT INTO "PaysFilm" VALUES (18,12,1);
INSERT INTO "PaysFilm" VALUES (19,13,1);
INSERT INTO "PaysFilm" VALUES (20,13,3);
INSERT INTO "PaysFilm" VALUES (21,14,1);
INSERT INTO "PaysFilm" VALUES (22,15,2);
INSERT INTO "PaysFilm" VALUES (23,16,2);
INSERT INTO "PaysFilm" VALUES (24,17,3);
INSERT INTO "PaysFilm" VALUES (25,18,1);
INSERT INTO "PaysFilm" VALUES (26,18,3);
INSERT INTO "PaysFilm" VALUES (27,19,1);
INSERT INTO "PaysFilm" VALUES (28,19,3);
INSERT INTO "PaysFilm" VALUES (29,20,1);
INSERT INTO "PaysFilm" VALUES (30,20,3);
INSERT INTO "PaysFilm" VALUES (31,21,1);
INSERT INTO "PaysFilm" VALUES (32,21,3);
INSERT INTO "PaysFilm" VALUES (33,22,4);
INSERT INTO "PaysFilm" VALUES (34,22,1);
INSERT INTO "PaysFilm" VALUES (35,23,2);
INSERT INTO "PaysFilm" VALUES (36,24,2);
INSERT INTO "PaysFilm" VALUES (37,24,6);
INSERT INTO "PaysFilm" VALUES (38,24,4);
INSERT INTO "PaysFilm" VALUES (39,25,1);
INSERT INTO "PaysFilm" VALUES (40,26,2);
INSERT INTO "PaysFilm" VALUES (41,27,1);
INSERT INTO "PaysFilm" VALUES (42,28,2);
INSERT INTO "PaysFilm" VALUES (43,29,1);
INSERT INTO "PaysFilm" VALUES (44,30,1);
INSERT INTO "PaysFilm" VALUES (45,31,1);
INSERT INTO "PaysFilm" VALUES (46,32,2);
INSERT INTO "PaysFilm" VALUES (47,33,2);
INSERT INTO "PaysFilm" VALUES (48,33,3);
INSERT INTO "PaysFilm" VALUES (49,34,1);
INSERT INTO "PaysFilm" VALUES (50,35,2);
INSERT INTO "PaysFilm" VALUES (51,36,1);
INSERT INTO "PaysFilm" VALUES (52,37,2);
INSERT INTO "PaysFilm" VALUES (53,38,2);
INSERT INTO "PaysFilm" VALUES (54,39,2);
INSERT INTO "PaysFilm" VALUES (55,40,1);
INSERT INTO "PaysFilm" VALUES (56,41,1);
INSERT INTO "PaysFilm" VALUES (57,42,2);
INSERT INTO "PaysFilm" VALUES (58,43,2);
INSERT INTO "PaysFilm" VALUES (59,43,4);
INSERT INTO "PaysFilm" VALUES (60,43,10);
INSERT INTO "PaysFilm" VALUES (61,44,1);
INSERT INTO "PaysFilm" VALUES (62,45,1);
INSERT INTO "PaysFilm" VALUES (63,45,4);
INSERT INTO "PaysFilm" VALUES (64,46,2);
INSERT INTO "PaysFilm" VALUES (65,47,2);
INSERT INTO "PaysFilm" VALUES (66,47,5);
INSERT INTO "PaysFilm" VALUES (67,48,2);
INSERT INTO "PaysFilm" VALUES (68,49,2);
INSERT INTO "PaysFilm" VALUES (69,49,1);
INSERT INTO "PaysFilm" VALUES (70,49,4);
INSERT INTO "PaysFilm" VALUES (71,50,1);
INSERT INTO "PaysFilm" VALUES (72,51,1);
INSERT INTO "PaysFilm" VALUES (73,52,1);
INSERT INTO "PaysFilm" VALUES (74,53,2);
INSERT INTO "PaysFilm" VALUES (75,53,4);
INSERT INTO "PaysFilm" VALUES (76,54,1);
INSERT INTO "PaysFilm" VALUES (77,54,3);
INSERT INTO "PaysFilm" VALUES (78,55,2);
INSERT INTO "PaysFilm" VALUES (79,55,4);
INSERT INTO "PaysFilm" VALUES (80,56,1);
INSERT INTO "PaysFilm" VALUES (81,57,1);
INSERT INTO "PaysFilm" VALUES (82,58,1);
INSERT INTO "PaysFilm" VALUES (83,58,7);
INSERT INTO "PaysFilm" VALUES (84,59,1);
INSERT INTO "PaysFilm" VALUES (85,59,7);
INSERT INTO "PaysFilm" VALUES (86,60,1);
INSERT INTO "PaysFilm" VALUES (87,60,7);
INSERT INTO "PaysFilm" VALUES (88,61,2);
INSERT INTO "PaysFilm" VALUES (89,61,4);
INSERT INTO "PaysFilm" VALUES (90,62,1);
INSERT INTO "PaysFilm" VALUES (91,63,1);
INSERT INTO "PaysFilm" VALUES (92,64,1);
INSERT INTO "PaysFilm" VALUES (93,65,2);
INSERT INTO "PaysFilm" VALUES (94,65,4);
INSERT INTO "PaysFilm" VALUES (95,66,2);
INSERT INTO "PaysFilm" VALUES (96,67,2);
INSERT INTO "PaysFilm" VALUES (97,68,3);
INSERT INTO "PaysFilm" VALUES (98,68,1);
INSERT INTO "PaysFilm" VALUES (99,69,2);
INSERT INTO "PaysFilm" VALUES (100,69,6);
INSERT INTO "PaysFilm" VALUES (101,69,5);
INSERT INTO "PaysFilm" VALUES (102,70,2);
INSERT INTO "PaysFilm" VALUES (103,71,1);
INSERT INTO "PaysFilm" VALUES (104,72,2);
INSERT INTO "PaysFilm" VALUES (105,72,4);
INSERT INTO "PaysFilm" VALUES (106,73,2);
INSERT INTO "PaysFilm" VALUES (107,73,8);
INSERT INTO "PaysFilm" VALUES (108,73,4);
INSERT INTO "PaysFilm" VALUES (109,74,1);
INSERT INTO "PaysFilm" VALUES (110,75,2);
INSERT INTO "PaysFilm" VALUES (111,76,2);
INSERT INTO "PaysFilm" VALUES (112,77,2);
INSERT INTO "PaysFilm" VALUES (113,77,4);
INSERT INTO "PaysFilm" VALUES (114,77,6);
INSERT INTO "PaysFilm" VALUES (115,78,2);
INSERT INTO "PaysFilm" VALUES (116,79,2);
INSERT INTO "PaysFilm" VALUES (117,80,2);
INSERT INTO "PaysFilm" VALUES (118,81,1);
INSERT INTO "PaysFilm" VALUES (119,81,3);
INSERT INTO "PaysFilm" VALUES (120,82,1);
INSERT INTO "PaysFilm" VALUES (121,83,2);
INSERT INTO "PaysFilm" VALUES (122,84,2);
INSERT INTO "PaysFilm" VALUES (123,85,1);
INSERT INTO "PaysFilm" VALUES (124,86,2);
INSERT INTO "PaysFilm" VALUES (125,86,9);
INSERT INTO "PaysFilm" VALUES (126,87,1);
INSERT INTO "PaysFilm" VALUES (127,88,1);
INSERT INTO "PaysFilm" VALUES (128,89,2);
INSERT INTO "PaysFilm" VALUES (129,90,1);
INSERT INTO "PaysFilm" VALUES (130,91,1);
INSERT INTO "PaysFilm" VALUES (131,91,3);
INSERT INTO "PaysFilm" VALUES (132,92,1);
INSERT INTO "PaysFilm" VALUES (133,93,1);
INSERT INTO "PaysFilm" VALUES (134,94,1);
INSERT INTO "PaysFilm" VALUES (135,95,1);
INSERT INTO "PaysFilm" VALUES (136,96,2);
INSERT INTO "PaysFilm" VALUES (137,97,1);
INSERT INTO "PaysFilm" VALUES (138,98,2);
INSERT INTO "PaysFilm" VALUES (139,99,2);
INSERT INTO "PaysFilm" VALUES (140,100,1);
INSERT INTO "Realisateur" VALUES (1,'James','Cameron','16/08/1954',12);
INSERT INTO "Realisateur" VALUES (2,'Dany','Boon','26/05/1966',2);
INSERT INTO "Realisateur" VALUES (3,'Eric','Toledano','03/07/1971',2);
INSERT INTO "Realisateur" VALUES (4,'David','Hand','23/01/1900',1);
INSERT INTO "Realisateur" VALUES (5,'Gérard','Oury','29/04/1919',2);
INSERT INTO "Realisateur" VALUES (6,'Victor','Fleming','23/02/1889',1);
INSERT INTO "Realisateur" VALUES (7,'Sergio','Leone','03/01/1929',4);
INSERT INTO "Realisateur" VALUES (8,'Wolfgang','Reitherman','26/05/1909',1);
INSERT INTO "Realisateur" VALUES (9,'Clyde','Geronimi','12/05/1901',4);
INSERT INTO "Realisateur" VALUES (10,'Alain','Chabat','24/11/1958',2);
INSERT INTO "Realisateur" VALUES (11,'Cecil','B. DeMille','18/08/1881',1);
INSERT INTO "Realisateur" VALUES (12,'William','Wyler','01/07/1902',6);
INSERT INTO "Realisateur" VALUES (13,'Jean-Marie','Poiré','10/07/1945',2);
INSERT INTO "Realisateur" VALUES (14,'David','Lean','25/03/1908',3);
INSERT INTO "Realisateur" VALUES (15,'Clyde','Geronimi','12/05/1989',1);
INSERT INTO "Realisateur" VALUES (16,'Julien','Duvivier','08/10/1896',2);
INSERT INTO "Realisateur" VALUES (17,'Philippe','de Chauveron','15/11/1965',2);
INSERT INTO "Realisateur" VALUES (18,'Ken','Annakin','22/04/2009',3);
INSERT INTO "Realisateur" VALUES (19,'J.J.','Abrams','27/06/1966',1);
INSERT INTO "Realisateur" VALUES (20,'Patrice','Leconte','12/11/1947',2);
INSERT INTO "Realisateur" VALUES (21,'Coline','Serreau','29/10/1947',2);
INSERT INTO "Realisateur" VALUES (22,'Gérard','Krawczyk','17/05/1953',11);
INSERT INTO "Realisateur" VALUES (23,'John Lee','Thompson','05/10/1957',3);
INSERT INTO "Realisateur" VALUES (24,'Roger','Allers','29/05/1949',1);
INSERT INTO "Realisateur" VALUES (25,'Jon','Favreau','19/10/1966',1);
INSERT INTO "Realisateur" VALUES (26,'Yves','Robert','19/05/1920',2);
INSERT INTO "Realisateur" VALUES (27,'Jean-Paul','Le Chanois','25/10/1909',2);
INSERT INTO "Realisateur" VALUES (28,'Steven','Spielberg','18/12/1946',1);
INSERT INTO "Realisateur" VALUES (29,'Chris','Columbus','10/09/1958',1);
INSERT INTO "Realisateur" VALUES (30,'Francis','Veber','28/07/1937',2);
INSERT INTO "Realisateur" VALUES (31,'Luc','Besson','18/03/1959',2);
INSERT INTO "Realisateur" VALUES (32,'Andrew','Stanton','03/12/1965',1);
INSERT INTO "Realisateur" VALUES (33,'Jean-Jacques','Annaud','01/10/1943',2);
INSERT INTO "Realisateur" VALUES (34,'Just','Jaeckin','08/09/1940',2);
INSERT INTO "Realisateur" VALUES (35,'Henri','Verneuil','11/01/2002',2);
INSERT INTO "Realisateur" VALUES (36,'Claude','Zidi','25/07/1934',2);
INSERT INTO "Realisateur" VALUES (37,'John','Sturges','03/01/1910',1);
INSERT INTO "Realisateur" VALUES (38,'Robert','Wise','10/09/1914',1);
INSERT INTO "Realisateur" VALUES (39,'Alexander','Esway','20/01/1895',13);
INSERT INTO "Realisateur" VALUES (40,'Jean-Pierre','Jeunet','03/09/1953',2);
INSERT INTO "Realisateur" VALUES (41,'Christophe','Barratier','17/05/1963',2);
INSERT INTO "Realisateur" VALUES (42,'Charlie','Chaplin','16/04/1889',3);
INSERT INTO "Realisateur" VALUES (43,'Sam','Wood','10/07/1883',1);
INSERT INTO "Realisateur" VALUES (44,'Hervé','Palud','14/04/1953',2);
INSERT INTO "Realisateur" VALUES (45,'Brad','Bird','15/09/1957',1);
INSERT INTO "Realisateur" VALUES (46,'Kevin','Lima','12/05/1962',1);
INSERT INTO "Realisateur" VALUES (47,'Jean','Girault','09/05/1924',2);
INSERT INTO "Realisateur" VALUES (48,'Carlos','Saldanha','24/01/1965',15);
INSERT INTO "Realisateur" VALUES (49,'M.','Night Shyamalan','06/08/1970',1);
INSERT INTO "Realisateur" VALUES (50,'Jennifer','Lee','01/10/1971',1);
INSERT INTO "Realisateur" VALUES (51,'Chris','Buck','24/02/1958',1);
INSERT INTO "Realisateur" VALUES (52,'Mike','Newell','28/03/1942',3);
INSERT INTO "Realisateur" VALUES (53,'Stanley','Kubrick','26/07/1928',1);
INSERT INTO "Realisateur" VALUES (54,'Éric','Lartigau','20/05/1964',2);
INSERT INTO "Realisateur" VALUES (55,'Thomas','Gilou','01/02/1955',2);
INSERT INTO "Realisateur" VALUES (56,'René','Clements','18/03/1913',2);
INSERT INTO "Realisateur" VALUES (57,'Kevin','Costner','18/01/1955',1);
INSERT INTO "Realisateur" VALUES (58,'Peter','Jackson','31/10/1961',7);
INSERT INTO "Realisateur" VALUES (59,'George','Lucas','14/05/1944',1);
INSERT INTO "Realisateur" VALUES (60,'Art','Stevens','01/05/1915',1);
INSERT INTO "Realisateur" VALUES (61,'Claude','Berri','01/07/1934',2);
INSERT INTO "Realisateur" VALUES (62,'Andrew','Adamson','01/12/1966',7);
INSERT INTO "Realisateur" VALUES (63,'Jacques','Tati','09/10/1907',2);
INSERT INTO "Realisateur" VALUES (64,'Alfonso','Cuarón','28/11/1961',14);
INSERT INTO "Realisateur" VALUES (65,'Maurice','Cloche','17/05/1907',2);
INSERT INTO "Realisateur" VALUES (66,'Sam','Mendes','01/08/1965',3);
INSERT INTO "Realisateur" VALUES (67,'Sacha','Guitry','24/07/1957',2);
INSERT INTO "Realisateur" VALUES (68,'Anthony','Russo','03/02/1970',1);
INSERT INTO "Realisateur" VALUES (69,'Thomas','Langmann','24/05/1971',2);
INSERT INTO "Realisateur" VALUES (70,'Gary','Trousdale','08/06/1960',1);
INSERT INTO "Realisateur" VALUES (71,'Maurice','de Canonge','18/03/1894',2);
INSERT INTO "Realisateur" VALUES (72,'Christian','Jaque','04/09/1904',2);
INSERT INTO "Realisateur" VALUES (73,'Richard','Rich','??/??/1951',1);
INSERT INTO "Realisateur" VALUES (74,'Guy','Hamilton','16/09/1922',3);
INSERT INTO "Realisateur" VALUES (75,'Didier','Bourdon','22/01/1959',2);
INSERT INTO "Realisateur" VALUES (76,'Jean','Boyer','26/05/1901',2);
INSERT INTO "Realisateur" VALUES (77,'Peter','Weir','21/08/1944',16);
INSERT INTO "Realisateur" VALUES (78,'Steve','Martino','??/??/1959',1);
INSERT INTO "Realisateur" VALUES (79,'Olivier','Nakache','14/04/1973',2);
INSERT INTO "Realisateur" VALUES (80,'Hamilton','Luske','16/09/1903',1);
INSERT INTO "Realisateur" VALUES (81,'Wilfred','Jackson','24/01/1906',1);
INSERT INTO "Realisateur" VALUES (82,'James','Algar','11/05/1912',1);
INSERT INTO "Realisateur" VALUES (83,'John','Musker','08/11/1953',1);
INSERT INTO "Realisateur" VALUES (84,'John','Lounsbery','09/03/1911',1);
INSERT INTO "Realisateur" VALUES (85,'François','Forestier','25/12/1947',2);
INSERT INTO "Realisateur" VALUES (86,'Ted','Berman','17/12/1919',1);
INSERT INTO "Realisateur" VALUES (87,'Bernard','Campan','04/04/158',2);
INSERT INTO "Realisateur" VALUES (88,'Mike','Thurmeier','??/??/1965',12);
INSERT INTO "Realisateur" VALUES (89,'Samuel','Armstrong','05/02/11893',1);
INSERT INTO "Realisateur" VALUES (90,'Wolfgang','Reitherman','26/06/1909',1);
INSERT INTO "Realisateur" VALUES (92,'Joe','Russo','19/07/1971',1);
Ajouter un réalisateur dans la table Realisateur
.
SELECT¶
Pour afficher tous les enregistrements d’une table on utilise:
- Affichez les données présentes dans chacune des tables.
- Ecrire une requête SQL qui donne le titre de tous les films de la base de données.
SELECT DISTINCT¶
Par défaut SELECT
récupère les données avec des doublons. Si on souhaite avoir des enregistrements uniques uniquement alors,
il faut utiliser le mot clé DISTINCT
après SELECT
.
Si de plus on veut trier les données dans une table alors il faut utiliser l'instruction ORDER BY
.
Récupérer les années de sorties dans la table Film
sans doublons (pas plusieurs fois la même année) et trier les de la date la plus récente à la date la plus ancienne.
COUNT()¶
La fonction COUNT()
permet de retourner le nombre de lignes dans une table.
Après vous être renseigné sur internet si nécessaire, comptez le nombre de lignes dans la table Realisateur
.
WHERE¶
On peut filtrer les lignes avec WHERE
.
-
Ecrire une requête SQL qui donne le titre, le nombre d'entrées de tous les films de la base de données ayant fait plus de 10 millions d'entrées.
-
Cela représente combien de films ?
UPDATE¶
On peut mettre à jour des lignes dans une table en utilisant l'instruction UPDATE
.
Mettez à jour la table Film
, changez le nom du film Mission spéciale
en NSI Mission spéciale
.
DELETE¶
DELETE
permet de supprimer des lignes d'une table.
PRAGMA foreign_keys = ON;
et essayez de supprimer la Suisse
de la table Pays
. Que remarquez vous ? Qu'est ce qui explique ce résultat ?
Le calcul d'agrégats¶
En utilisant la fonction SUM()
, calculez le nombre d'entrées totales réalisées en 1949.
Les jointures¶
JOIN
permet d'effectuer des jointures, c'est à dire de récupérer des données en utilisant plusieurs tables et les relations clés primaires / clés étrangères.
-
Ecrire une requête SQL qui affiche tous les films avec leur titre, le prénom et le nom du réalisateur et l'année de sortie.
-
Ecrire une requête SQL qui affiche les 10 films ayant fait le plus d'entrées avec leur titre, le prénom et le nom du réalisateur, le où les pays ayant produit ou coproduit le film, l'année de sortie, le nombre d’entrées et triés par nombre d'entrées décroissantes.