Outils pour utilisateurs

Outils du site


nsi:sujets:sujet_0:exercice_4

Exercice - Requêtes SQL

Exercice tiré du sujet 0 de l'épreuve terminale de NSI – Exercice 4

L’énoncé de cet exercice utilise les mots du langage SQL suivants : SELECT, FROM, WHERE, JOIN, INSERT INTO, VALUES, COUNT, ORDER BY.

Dans un lycée imaginaire, les données relatives aux élèves de secondes sont regroupées dans un fichier nommé seconde_lyc.csv. Un extrait de son contenu est ci-dessous.

num_elevenomprenomdatenaissancelangue1langue2optionclasse
133310FEACHIRMussa01/01/2005anglaisespagnol2A
156929JJALTMEYERYohan05/05/2005allemandanglaisthéâtre2D
500633KHBELEYThibaut05/05/2005anglaisespagnol2A
911887GABELEYMarie05/05/2005anglaisespagnol2A
906089JJBELEYManon10/01/2005anglaisallemand2E
488697GACAILLEMarie30/03/2004italienanglais2D
193514FBCHARPENTIERJules26/12/2005espagnolanglais2C
321188FACLAUDELBenjamin09/09/2005espagnolanglais2E
081282GFEISENCarla23/06/2004anglaisallemand2A
026946KBELAYARAmir11/09/2005anglaisarabecinéma2D
108303KGGEHINArthur26/02/2005allemandanglais2D
057934BKGROSJEANAlexandre09/11/2005anglaisespagnol2C
571113KEHENRYPaul12/03/2005allemandanglais2E
488820DEJAQUEYMarc13/11/2005anglaisitalien2D
024810CEJULIANOAlberto21/04/2005anglaisespagnol2C
249992EJKLEIBERGusti20/02/2005anglaisespagnolcinéma2E
422698AFLACOURJulie06/04/2005italienanglais2D
026454FALARBINourdine14/07/2005espagnolanglais2C
309341GDLEFZAYasmina26/11/2005espagnolanglais2E
076725HDMARTINVictor13/03/2005anglaisespagnol2A
815183CBNGUYENNgong16/03/2005anglaisespagnol2D
094002FCPELTIERRomane14/06/2005allemandanglais2D
321262HDRENAULTZoé06/08/2005anglaisespagnollatin2E
075421AKROTHUrsule03/01/2005anglaisallemand2A
121001CKSERHANISabrina01/09/2005italienanglais2D
538965DJTLIDJANEYourk31/01/2005espagnolanglais2D
389873GCVIALETPriscille28/02/2005espagnolanglais2C
980306CAWADEMarcelin03/05/2005allemandanglais2E
807158DHWENGERAlexandre20/08/2005allemandanglais2A
666702FAYAMANElamine23/04/2005anglaisarabe2D

Pour les besoins de l'organisation du lycée, le chef d’établissement exploite la base de données par des requêtes en langage SQL. Il a pour cela créé une table (ou relation) SQL dénommée seconde dans son système de gestion de bases de données dont la structure est la suivante :

seconde
num_eleve (clef primaire)
langue1
langue2
option
classe

L’attribut num_eleve est un entier, les autres sont des chaînes de caractère (le type CHAR).

Question 1

  1. Dans le modèle relationnel, quel est l'intérêt de l'attribut num_eleve.
  2. Écrire une requête SQL d'insertion permettant d’enregistrer l'élève ACHIR Mussa dans la table seconde – Les informations relatives à cet élève sont données dans la ligne 1 du fichier seconde_lyc.csv.
  3. Lors de l'insertion de l'élève ALTMEYER Yohan – ligne 2 du fichier seconde_lyc.csv – une erreur de saisie a été commise sur la première langue, qui devrait être allemand. Écrire une requête SQL de mise à jour corrigeant les données de cet élève.

Question 2

On suppose maintenant que la table seconde contient les informations issues de l'extrait de fichier csv donné précédemment – Même si on a dit que ce n'était qu'un extrait, faire comme si c'était la totalité du fichier seconde_lyc.csv.

  1. Quel est le résultat de la requête SELECT num_eleve FROM seconde; ?
  2. On rappelle qu'en SQL, la fonction d’agrégation COUNT() permet de compter le nombre d'enregistrements dans une table.
    Quel est le résultat de la requête
    SELECT COUNT(num_eleve) FROM seconde ; ?
  3. Écrire la requête permettant de connaître le nombre d'élèves qui font allemand en langue1 ou langue2.

Question 3

Le chef d'établissement souhaite faire évoluer la structure de sa base de données. Pour ce faire, il créé une nouvelle table eleve dont la structure est la suivante :

eleve
num_eleve (clef primaire, clef étrangère de la table seconde)
nom
prenom
datedenaissance

Là encore, l'attribut num_eleve est un entier, les autres sont des chaînes de caractère (le type CHAR).

  1. Expliquer ce qu'apporte l’information clef étrangère pour l'attribue num_eleve de cette table en termes d'intégrité et de cohérence.
  2. On suppose la table eleve correctement créée et complétée. Le chef d'établissement aimerait lister les élèves – nom, prénom, date de naissance – de la classe 2A.
    Écrire la commande qui permet d'établir cette liste à l’aide d’une jointure entre eleve et seconde.

Question 4

Proposer la structure d'une table coordonnees dans laquelle on pourra indiquer, pour chaque élève, son adresse, son code postal, sa ville, son adresse mail. Préciser la clef primaire et/ou la clé étrangère en vue de la mise en relation avec les autres tables.

nsi/sujets/sujet_0/exercice_4.txt · Dernière modification : de goupillwiki