Correction : SGBQ
SQL : Requêtes et maintenance d'une base
>SELECT ... FROM ... WHERE ....
- Afficher tous les acteurs ayant joué dans le film dont l'id est 285
SELECT acteur FROM LesActeurs WHERE film_id=285; - Afficher le titre du film dont l'id est 285
SELECT titre FROM LesFilms WHERE film_id=285; - Afficher le réalisateur de ce film
SELECT realisateur FROM LesRealisateurs WHERE film_id=285; - Afficher la recette de ce film
SELECT recette FROM LesFilms WHERE film_id=285; - Afficher les id des films dans lesquels Daniel Craig a joué
SELECT film_id FROM LesActeurs WHERE acteur='Daniel Craig';
- Afficher tous les films tournés en 2014 en langue chinoise (zh).
SELECT titre FROM LesFilms WHERE anSortie=2014 and vo='zh'; - Afficher tous les films tournés en 2000 en langue japonaise et ceux sortis en 1993 en français (attention à la traduction du français naturel en opérateurs logiques...)
SELECT titre FROM LesFilms WHERE (anSortie=2000 and vo='ja') or (anSortie=1993 and vo='fr'); - Le nombre de films sortis en 2015
SELECT COUNT(*) FROM LesFilms WHERE anSortie=2015; - Le nombre de films ou Daniel Craig a joué
SELECT COUNT(*) FROM LesActeurs WHERE acteur='Daniel Craig'; - Le nombre de films réalisés par Tim Burton
SELECT COUNT(*) FROM LesRealisateurs WHERE realisateur='Tim Burton'; - La recette totale des films sortis en 2011
SELECT SUM(recette) FROM LesFilms WHERE anSortie='2011'; - La recette totale des films tournés en français
SELECT SUM(recette) FROM LesFilms WHERE vo='fr'; - Le titre du film le plus long
SELECT titre, MAX(duree) FROM LesFilms ; - Le titre du film le plus long sorti en 2011
SELECT titre, MAX(duree) FROM LesFilms WHERE anSortie=2000; - Le titre du film ayant la recette la plus petite
SELECT titre, MIN(recette) FROM LesFilms; - Les films de 1985 classés par durée
SELECT titre FROM LesFIlms WHERE anSortie=1985 ORDER BY duree; - Les films tournés en français classés par recette
SELECT titre FROM LesFIlms WHERE vo='fr' ORDER BY recette; - Le nombre d'acteurs présents dans la base
SELECT COUNT(DISTINCT(acteur)) FROM LesActeurs; - Tous les titres de films réalisés par Tim Burton
SELECT titre FROM LesRealisateurs R JOIN LesFilms F ON (R.film_id=F.film_id) WHERE realisateur='Tim Burton'; - Les recettes triées par ordre croissant des films dans lesquels joue l'actrice CCH Pounder
SELECT titre FROM LesACteurs A JOIN LesFilms F ON (A.film_id=F.film_id) WHERE acteur='CCH Pounder' ORDER BY recette; - Tous les réalisateurs avec lesquels Johnny Depp a tourné un film
SELECT DISTINCT(realisateur) FROM LesRealisateurs R JOIN LesActeurs A ON (R.film_id=A.film_id) WHERE acteur="Johnny Depp"; - Supprimer L'acteur Cédric Le Bourg des relations LesActeurs et LesRealisateurs
DELETE FROM LesActeurs WHERE acteur='Cedric LE BOURG'; DELETE FROM LesRealisateurs WHERE realisateur='Cedric LE BOURG'; - Ajoutez votre nom dans les relations LesActeurs et LesRealisateurs sur le film de votre choix
INSERT INTO LesActeurs VALUES (3121975,'M. PERROD'); - Remplacer le fr par français pour l'attribut vo de la relation LesFilms
UPDATE LesFilms SET vo='français' WHERE vo='fr'; - Remplacer le en par anglais pour l'attribut vo de la relation LesFilms
UPDATE LesFilms SET vo='anglais' WHERE vo='en'; - La commande qui garanti l'unicité de la clef primaire :
CONSTRAINT PK_realisateurs PRIMARY KEY (film_id) - La commande qui garanti la référence de la clef secondaire :
CONSTRAINT FK_id FOREIGN KEY (film_id) REFERENCES LesFilms(film_id)) - Les domaines des deux attributs de la relation :
film_id int, realisateur text (int et text) - Les deux contraintes référentielles sont :
- le contenu du champ nomA dans la relation lesMaladies est pris dans le contenu du champ nomA de la relation lesAnimaux
- Le contenu du champ noCage de la relation LesAnimaux est pris dans le champs noCage de la relation LesCages
- Les contraintes de domaine pour les différents attributs sont :
nomA : text, sexe : text, type : text, anNais : int, Pays : text, noCage : int, nomM : text, fonction : text, allée : int -
Commande
SQLpermettant de créer la relationLesAnimaux(vous pouvez la tester avec DbBrowser).CREATE TABLE LesAnimaux (NomA text, sexe text, type text, anNais int, Pays text, noCage int, CONSTRAINT PK_NomA PRIMARY KEY (nomA), CONSTRAINT FK_id FOREIGN KEY (nomA) REFERENCES LesMaladies(nomA)); - Insertion :
INSERT INTO LesMaladies VALUES ('Rex', 'grippe'); INSERT INTO lesAnmimaux VALUES ('Rex', 'male','chien','2017','France',77); - Suppression :
DELETE FROM LesAnimaux WHERE nomA='Charlotte'; DELETE FROM LesCages WHERE NoCage='11'; - Mise à jour
UPDATE LesAanimaux SET nomA='Chacha' WHERE nomA='Charly'; UPDATE LesCages SET noCage='51' WHERE noCaage='5';