Questions sur les tables films et artistes
de la base statdata
Pour mémoire, les deux tables ARTISTES et FILMS sont décrites ici et affichées là.
Vous pouvez tester vos réponses via l'interface executeMySql .
Série de question(s) numéro 1 :
Combien y a-t-il de films, d'artistes et de metteurs en scène ?
solution
SELECT "Il y a ",count(*) ," films" FROM films ; SELECT " et " ,count(*) ,"artistes" FROM artistes ; SELECT " dont " ,count(distinct(mes)) ,"metteurs en scène" FROM films ;-------------- SELECT "Il y a ",count(*) ," films" FROM films -------------- +---------+----------+--------+ | Il y a | count(*) | films | +---------+----------+--------+ | Il y a | 48 | films | +---------+----------+--------+ 1 row in set (0.00 sec) -------------- SELECT " et " ,count(*) ,"artistes" FROM artistes -------------- +------+----------+----------+ | et | count(*) | artistes | +------+----------+----------+ | et | 117 | artistes | +------+----------+----------+ 1 row in set (0.00 sec) -------------- SELECT " dont " ,count(distinct(mes)) ,"metteurs en scène" FROM films -------------- +--------+----------------------+-------------------+ | dont | count(distinct(mes)) | metteurs en scène | +--------+----------------------+-------------------+ | dont | 32 | metteurs en scène | +--------+----------------------+-------------------+ 1 row in set, 1 warning (0.00 sec) ByeSérie de question(s) numéro 2 :
Combien d'artistes n'ont pas de date de naissance correctement indiquée ?
Combien d'artistes sont né(e)s avant 1950, année incluse ?
Combien d'artistes sont né(e)s entre 1950 et 1960, années incluses ?
Quel est le plus vieil artiste ? Et le plus jeune ?
solution
SELECT COUNT(*) FROM artistes WHERE anneenaiss= 0 ; SELECT COUNT(*) FROM artistes WHERE anneenaiss<= 1950 ; SELECT COUNT(*) FROM artistes WHERE anneenaiss>= 1950 AND anneenaiss<= 1960 ; SELECT DISTINCT(CONCAT(artprenom, " ",artnom)) AS artiste, anneenaiss FROM artistes WHERE anneenaiss=( SELECT min(anneenaiss) FROM artistes WHERE anneenaiss>0 ) OR anneenaiss=( SELECT max(anneenaiss) FROM artistes WHERE anneenaiss>0 ) ;-------------- SELECT COUNT(*) FROM artistes WHERE anneenaiss= 0 -------------- +----------+ | COUNT(*) | +----------+ | 40 | +----------+ 1 row in set (0.00 sec) -------------- SELECT COUNT(*) FROM artistes WHERE anneenaiss<= 1950 -------------- +----------+ | COUNT(*) | +----------+ | 79 | +----------+ 1 row in set (0.00 sec) -------------- SELECT COUNT(*) FROM artistes WHERE anneenaiss>= 1950 AND anneenaiss<= 1960 -------------- +----------+ | COUNT(*) | +----------+ | 24 | +----------+ 1 row in set (0.00 sec) -------------- SELECT DISTINCT(CONCAT(artprenom, " ",artnom)) AS artiste, anneenaiss FROM artistes WHERE anneenaiss=( SELECT min(anneenaiss) FROM artistes WHERE anneenaiss>0 ) OR anneenaiss=( SELECT max(anneenaiss) FROM artistes WHERE anneenaiss>0 ) -------------- +------------------+------------+ | artiste | anneenaiss | +------------------+------------+ | Alfred Hitchcock | 1899 | | Christina Ricci | 1980 | +------------------+------------+ 2 rows in set (0.00 sec) ByeSérie de question(s) numéro 3 :
Quel est le plus vieux metteur en scène ? Et le plus jeune ?
solution
SET @mesNaissMin := ( SELECT min(anneenaiss) FROM artistes,films WHERE anneenaiss>0 AND idArtiste=mes ) ; SET @mesNaissMax := ( SELECT max(anneenaiss) FROM artistes,films WHERE anneenaiss>0 AND idArtiste=mes ) ; SELECT DISTINCT(CONCAT(artprenom, " ",artnom)) AS metteurEnScene, anneenaiss FROM artistes,films WHERE anneenaiss>0 AND idArtiste=mes AND (anneenaiss=@mesNaissMin OR anneenaiss=@mesNaissMax) ;-------------- SET @mesNaissMin := ( SELECT min(anneenaiss) FROM artistes,films WHERE anneenaiss>0 AND idArtiste=mes ) -------------- Query OK, 0 rows affected (0.00 sec) -------------- SET @mesNaissMax := ( SELECT max(anneenaiss) FROM artistes,films WHERE anneenaiss>0 AND idArtiste=mes ) -------------- Query OK, 0 rows affected (0.00 sec) -------------- SELECT DISTINCT(CONCAT(artprenom, " ",artnom)) AS metteurEnScene, anneenaiss FROM artistes,films WHERE anneenaiss>0 AND idArtiste=mes AND (anneenaiss=@mesNaissMin OR anneenaiss=@mesNaissMax) -------------- +------------------+------------+ | metteurEnScene | anneenaiss | +------------------+------------+ | Alfred Hitchcock | 1899 | | Andy Wachowski | 1967 | +------------------+------------+ 2 rows in set (0.00 sec) ByeSérie de question(s) numéro 4 :
Quel metteur en scène a réalisé le plus de films ?
solution
SET @nbFilmsMax = ( SELECT COUNT(mes) AS nbf FROM films GROUP BY mes ORDER BY nbf DESC LIMIT 1 ) ; SELECT artnom, COUNT(mes) AS nbf ,"films" FROM films,artistes WHERE idArtiste=mes GROUP BY mes HAVING nbf=@nbFilmsMax ORDER BY nbf DESC ;-------------- SET @nbFilmsMax = ( SELECT COUNT(mes) AS nbf FROM films GROUP BY mes ORDER BY nbf DESC LIMIT 1 ) -------------- Query OK, 0 rows affected (0.00 sec) -------------- SELECT artnom, COUNT(mes) AS nbf ,"films" FROM films,artistes WHERE idArtiste=mes GROUP BY mes HAVING nbf=@nbFilmsMax ORDER BY nbf DESC -------------- +-----------+-----+-------+ | artnom | nbf | films | +-----------+-----+-------+ | Hitchcock | 6 | films | +-----------+-----+-------+ 1 row in set (0.00 sec) ByeSérie de question(s) numéro 5 :
Quel acteur a joué dans le plus grand nombre de films ?
solution
Aucune information dans les tables ne permet de relier les acteurs et les films, il est donc impossible de répondre à la question via MySQL.
Retour à la page principale de (gH)