Devoir sql

Messages postés
8
Date d'inscription
jeudi 15 décembre 2011
Dernière intervention
8 avril 2018
-
Bonjour,

Je suis en BTS Assistant de gestion PMI-PME. J'ai énormément de mal dans la matière Gestion du système d'information. Ca fait 1 mois que je suis sur un devoir portant sur les bases de données et SQL. Voilà ce que j'ai fais pour l'instant dites moi si c'est bon ou pas et pour les 2 derniers pouvez-vous m'aider svp ? j'ai regardé tous les cours mais en vain.

Donner la liste de tous les stagiaires, classés par ordre alphabétique décroissant
SELECT * 
FROM STAGIAIRE
ORDER BY NomSta DESC


Donner le nom et le prénom des stagiaires domiciliés à Toulon.
SELECT nom, prénom
FROM STAGIAIRE
WHERE Ville_Sta =Toulon


Donner la liste des étudiants qui ont obtenu une note inférieure à 10 en Mathématiques.
SELECT *
FROM ÉTUDIENT
WHERE épreuve = mathématiques AND note<10


Donner la liste des épreuves dont la date se situe entre le 1er mai et le 1er juillet 2016.
SELECT * 
FROM EPREUVE
WHERE date_Ep BETWEEN 01/05/2016 AND 01/07/2016


Donner la somme des coefficients de toutes les matières.
SELECT SUM (Coefficient) 
FROM MATIERE


Donner le nombre total d’épreuves.
SELECT COUNT * 
FROM EPREUVE


Lister les notes du stagiaire DUPOND Romuald en précisant pour chacune d’entre elles le libellé de la matière, le numéro et la date de l’épreuve.

Donner la moyenne des notes de chaque stagiaire en indiquant son nom et son prénom.
Afficher la suite 

Votre réponse

4 réponses

Messages postés
1
Date d'inscription
dimanche 8 avril 2018
Dernière intervention
8 avril 2018
0
Merci
fait voir comment est structuré ta base de donnée pour qu'on puissent te donner la requête exacte
Manel933
Messages postés
8
Date d'inscription
jeudi 15 décembre 2011
Dernière intervention
8 avril 2018
-
Désolée, je pensais avoir joint un fichier où tout était indiqué. Voici le MRD :
STAGIAIRE (numSta, nomSta, prénomSta, datenaissSta, rueSta, cpSta, villeSta, numMetier)
METIER (numMetier, libelleMetier)
MATIERE (codeMat, libelleMat, coefMat)
EPREUVE (numEp, dateEp, lieuEp, codeMat#)
NOTATION (numSta#, numEp#, note)
KX
Messages postés
15868
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 décembre 2018
> Manel933
Messages postés
8
Date d'inscription
jeudi 15 décembre 2011
Dernière intervention
8 avril 2018
-
Dans NOTATION il serait logique que numEp# soit souligné aussi.
jordane45
Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
> KX
Messages postés
15868
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 décembre 2018
-
Et dans EPREUVE, codeMat# et dans stagiaire numMetier aussi.
KX
Messages postés
15868
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 décembre 2018
> jordane45
Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
-
"Et dans EPREUVE, codeMat# et dans stagiaire numMetier aussi."
Je ne vois pas l'intérêt de mettre une double clé primaire (souligné) à EPREUVE ou STAGIAIRE.
Par contre pour STAGIAIRE, ce qu'il manquerait à numMetier c'est plutôt le # (clé secondaire)

Dans tous les cas, ça revient à ce que je disais plus tôt, ça n'a clairement pas été testé.
jordane45
Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
> KX
Messages postés
15868
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 décembre 2018
-

Dans tous les cas, ça revient à ce que je disais plus tôt, ça n'a clairement pas été testé.

C'est clair.
Quand on voit des comparaison de champs textes sans quotes...
comme par exemple :
WHERE Ville_Sta =Toulon

ou encore :
WHERE épreuve = mathématiques

Des accents dans le nom des champs ( à éviter ABSOLUMENT ! )
Des dates en français (à mois qu'il ne soit sous access éventuellement....) (et là aussi sans les quotes...)

@Manel933, comme te l'a indiqué KX ... tu dois absolument te créer la base de données en local sur ton ordi (ou avec la solution proposée par KX, ou en t'installant un mysql avec phpmyadmin (via uwamp, xampp, easyphp, wamp.... )
Soit, si tu l'as... via une bdd Access.

Les écrire de tête... à ton niveau ... ça ne marchera pas.
Commenter la réponse de miracloss
Messages postés
15868
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 décembre 2018
0
Merci
Bonjour,

De toute évidence tu n'as pas testé tes requêtes, si tu fais ça "de tête" tu ne pourras pas progresser.

Tu peux par exemple télécharger une base de données H2 (dernière version : ici, 1.8 Mo)
Tu auras alors accès à une interface web pour créer tes tables, ajouter des données et tester les requêtes.
Le tout est stocké dans un fichier que tu pourras supprimer une fois tes tests terminés.
Commenter la réponse de KX
Messages postés
12410
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 décembre 2018
0
Merci
Salut, je ne suis pas bien bon en SGBD, mais à l'instar d'une variable, un champ avec un accent c'est pas (fortement) déconseillé?
jordane45
Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
-
Si et c'est bien ce que j'ai indiqué.
Whismeril
Messages postés
12410
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 décembre 2018
> jordane45
Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
-
Ha oui pardon, j'ai zappé ce paragraphe => je sors
Commenter la réponse de Whismeril
0
Merci
Bonjour ,

Merci pour vos réponses. Je n’ai pas mis les accents sur la copie ;). Et je n’ai pas le temps de tester les requêtes sur un logiciel. On étudie pas de façon approfondie le langage SQL, c’est seulement une approche. Les profs sont très indulgents avec nous car ce n’est pas notre domaine du tout. Du coup c’est très très superficiel. Je suis même plus pointue qu’eux.

Mais du coup dans ce que j’ai fais mis à part les accents c’est bon ou pas ? Et pouvez vous me dire que faire pour les 2 dernières requêtes ? Sinon tempi je rendrai ma copie ainsi car ça me saoul un peu ça fait 1 mois que je suis dessus.

Ps : j’ai lu les cours du prof, j’ai regardé des vidéos, les sites aussi mais je bloque.

Merci :)
KX
Messages postés
15868
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 décembre 2018
-
Bonjour,

"ça fait 1 mois que je suis dessus", "j’ai regardé des vidéos, les sites aussi"
"je n’ai pas le temps de tester les requêtes sur un logiciel"
.
Je ne vois pas où est la logique là dedans... Ça t'aurais pris moins de temps pour tester, tu aurais une certitude de ce qui fonctionne ou pas, et tu aurais probablement mieux compris cette matière.

Mais sinon, il y a des erreurs un peu partout. Prenons la 3è par exemple :
SELECT * FROM ÉTUDIENT WHERE épreuve = mathématiques  AND note<10

C'est quoi un ÉTUDIENT ? Dans ton MRD tu as des STAGIAIRE. Sachant que dans la table STAGIAIRE tu n'as pas de note, c'est une notion qui apparaît dans la table NOTATION, idem pour les mathématiques qui ne sont pas une épreuve, mais une matière dont le nom apparaît dans MATIERE.

En gros dans les requêtes que tu as faites, il te manque toute la partie relationnelle.
À chaque fois tu as tout fait avec une seule table, sans les relier les unes aux autres, alors que c'est le principe des modèles relationnels c'est qu'il faut croiser les données entre elles.

Si je devais corriger juste la 3è ce serait quelque chose comme ça :
SELECT DISTINCT numSta FROM NOTATION, EPREUVE, MATIERE
WHERE NOTATION.numEp = EPREUVE.numEp AND EPREUVE.codeMat = MATIERE.codeMat
AND note < 10 AND libelleMat = 'mathématiques';

Ça n'a pas grand chose à voir avec ce que tu as fait...
Pourquoi tant d'animosité ?

- J'ai passé un mois dessus, je ne veux pas perdre plus de temps bien que ta méthode soit très utile.
- EtudiAnt, faute de frappe. Autant pour moi.
- STAGIAIRE au lieu de étudiant j'aurais du mettre, j suis tombée dans le piège de l'énoncé où est mentionné "ETUDIANT" au lieu de STAGIAIRE.

Bref je te remercie tout de même d'avoir pris le temps de me répondre.
Whismeril
Messages postés
12410
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 décembre 2018
-
Y'a pas d'animosité, ce que dit KX, c'est que depuis 1 moi, tu aurais eu tout le temps d'installer une base de données, d'y saisir 10 entrées par table et faire tes tests.
C'est plus simple et plus efficace.
Commenter la réponse de Manel933

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.