Exercice sql server [Résolu/Fermé]

Signaler
Messages postés
18
Date d'inscription
mardi 18 janvier 2005
Statut
Membre
Dernière intervention
29 décembre 2005
-
hiba1983
Messages postés
5
Date d'inscription
dimanche 12 juin 2011
Statut
Membre
Dernière intervention
13 juin 2011
-
salut
pourrai-le avoir des exercices sur sql server merçi ...

23 réponses

je veux donne cette serie des exercices :
1
Exercice n°1
Soit le modèle relationnel suivant relatif à une base de données sur des
représentations musicales :
REPRESENTATION (n°représentation, titre_représentation, lieu)
MUSICIEN (nom, n°représentation*)
PROGRAMMER (date, n°représentation*, tarif)
Remarque : les clés primaires sont soulignées et les clés étrangères sont
marquées par *
Questions :
1 - Donner la liste des titres des représentations.
2 - Donner la liste des titres des représentations ayant lieu à l'opéra Bastille.
3 - Donner la liste des noms des musiciens et des titres des représentations
auxquelles ils participent.
4 - Donner la liste des titres des représentations, les lieux et les tarifs pour la

2
Correction de l'exercice n°1
1 - Donner la liste des titres des représentations.
SELECT titre_représentation FROM REPRESENTATION ;
2 - Donner la liste des titres des représentations ayant lieu à l'opéra Bastille.
SELECT titre_représentation FROM REPRESENTATION
WHERE lieu="Opéra Bastille" ;
3 - Donner la liste des noms des musiciens et des titres des représentations
auxquelles ils participent.
SELECT nom, titre_représentation
FROM MUSICIEN, REPRESENTATION
WHERE MUSICIEN.n°représentation = REPRESENTATION.n°représentation ;
4 - Donner la liste des titres des représentations, les lieux et les tarifs pour la
journée du 14/09/96.
SELECT titre_représentation, lieu, tarif
FROM REPRESENTATION, PROGRAMMER
WHERE PROGRAMMER.n°représentation =
REPRESENTATION.n°représentation
AND date='14/06/96' ;


Exercice n°2
Soit le modèle relationnel suivant relatif à la gestion des notes annuelles d'une
promotion d'étudiants :
ETUDIANT(N°Etudiant, Nom, Prénom)
MATIERE(CodeMat, LibelléMat, CoeffMat)
EVALUER(N°Etudiant*, CodeMat*, Date, Note)
Remarque : les clés primaires sont soulignées et les clés étrangères sont
marquées par *
Questions :
1 - Quel est le nombre total d'étudiants ?
2 - Quelles sont, parmi l'ensemble des notes, la note la plus haute et la note la
plus basse ?
3 - Quelles sont les moyennes de chaque étudiant dans chacune des matières ?
4 - Quelles sont les moyennes par matière ?
On utilisera la requête de la question 3 comme table source
5 - Quelle est la moyenne générale de chaque étudiant ?
On utilisera la requête de la question 3 comme table source
6 - Quelle est la moyenne générale de la promotion ?
On utilisera la requête de la question 5 comme table source
7 - Quels sont les étudiants qui ont une moyenne générale supérieure ou égale à
la moyenne générale de la promotion ?
On utilisera la requête de la question 5 comme table source

4
Correction de l'exercice n°2
1 - Quel est le nombre total d'étudiants ?
SELECT COUNT(*) FROM ETUDIANT ;
2 - Quelles sont, parmi l'ensemble des notes, la note la plus haute et la note la
plus basse ?
SELECT MIN(Note), MAX(Note) FROM EVALUER ;
3 - Quelles sont les moyennes de chaque étudiant dans chacune des matières?
SELECT ETUDIANT.N°Etudiant, Nom, Prénom, LibelléMat, CoeffMat,
AVG(Note) AS MoyEtuMat
FROM EVALUER, MATIERE, ETUDIANT
WHERE EVALUER.CodeMat = MATIERE.CodeMat
AND EVALUER.N°Etudiant = ETUDIANT.N°Etudiant
GROUP BY ETUDIANT.N°Etudiant, Nom, Prénom, LibelléMat, CoeffMat;
4 - Quelles sont les moyennes par matière ?
SELECT LibelléMat, AVG(MoyEtuMat)
FROM MOYETUMAT
GROUP BY LibelléMat ;
5 - Quelle est la moyenne générale de chaque étudiant ?
SELECT N°Etudiant, Nom, Prénom,
SUM(MoyEtuMat*CoeffMat)/SUM(CoeffMat) AS MgEtu
FROM MOYETUMAT
GROUP BY N°Etudiant, Nom, Prénom ;
6 - Quelle est la moyenne générale de la promotion ?
Avec la vue MGETU de la question 5 :
SELECT AVG(MgEtu)
FROM MGETU ;
7 - Quels sont les étudiants qui ont une moyenne générale supérieure ou
égale à la moyenne générale de la promotion ?
Avec la vue MGETU de la question 5 :
SELECT N°Etudiant, Nom, Prénom, MgEtu
FROM MGETU
WHERE MgEtu >= (SELECT AVG(MgEtu) FROM MGETU) ;

Exercice n°3
Soit le modèle relationnel suivant relatif à la gestion simplifiée des étapes du
Tour de France 97, dont une des étapes de type "contre la montre individuel" se
déroula à Saint-Etienne :
EQUIPE(CodeEquipe, NomEquipe, DirecteurSportif)
COUREUR(NuméroCoureur, NomCoureur, CodeEquipe*, CodePays*)
PAYS(CodePays, NomPays)
TYPE_ETAPE(CodeType, LibelléType)
ETAPE(NuméroEtape, DateEtape, VilleDép, VilleArr, NbKm, CodeType*)
PARTICIPER(NuméroCoureur*, NuméroEtape*, TempsRéalisé)
ATTRIBUER_BONIFICATION(NuméroEtape*, km, Rang, NbSecondes,
NuméroCoureur*)
Remarque : les clés primaires sont soulignées et les clés étrangères sont
marquées par *
Questions :
1 - Quelle est la composition de l'équipe Festina (Numéro, nom et pays des
coureurs) ?
2 - Quel est le nombre de kilomètres total du Tour de France 97 ?
3 - Quel est le nombre de kilomètres total des étapes de type "Haute
Montagne"?
4 - Quels sont les noms des coureurs qui n'ont pas obtenu de bonifications ?
5 - Quels sont les noms des coureurs qui ont participé à toutes les étapes ?
6 - Quel est le classement général des coureurs (nom, code équipe, code pays et
temps des coureurs) à l'issue des 13 premières étapes sachant que les
bonifications ont été intégrées dans les temps réalisés à chaque étape ?
7 - Quel est le classement par équipe à l'issue des 13 premières étapes (nom et
temps des équipes) ?
COPEMED - Formation SGBD - ACCESS Tunis, 25 septembre – 2 octobre 2001
6
Correction de l'exercice n°3
1 - Quelle est la composition de l'équipe FESTINA (Numéro, nom et pays des
coureurs) ?
SELECT NuméroCoureur, NomCoureur, NomPays
FROM EQUIPE A, COUREUR B, PAYS C
WHERE A.CodeEquipe=B.CodeEquipe And B.CodePays=C.CodePays
And NomEquipe="FESTINA" ;
2 - Quel est le nombre de kilomètres total du Tour de France 97 ?
SELECT SUM(Nbkm) FROM ETAPE ;
3 - Quel est le nombre de kilomètres total des étapes de type HAUTE
MONTAGNE ?
SELECT SUM(Nbkm) FROM ETAPE A, TYPE_ETAPE B
WHERE A.CodeType=B.CodeType And LibelléType="HAUTE MONTAGNE" ;
4 - Quels sont les noms des coureurs qui n'ont pas obtenu de bonifications ?
SELECT NomCoureur FROM COUREUR
WHERE NuméroCoureur NOT IN (SELECT NuméroCoureur FROM
ATTRIBUER_BONIFICATION) ;
5 - Quels sont les noms des coureurs qui ont participé à toutes les étapes ?
SELECT NomCoureur FROM PARTICIPER A, COUREUR B
WHERE A.NuméroCoureur=B.NuméroCoureur
GROUP BY NuméroCoureur, NomCoureur
HAVING COUNT(*)=(SELECT COUNT(*) FROM ETAPE) ;
6 - Quel est le classement général des coureurs (nom, code équipe, code pays
et temps des coureurs) à l'issue des 13 premières étapes sachant que les
bonifications ont été intégrées dans les temps réalisés à chaque étape ?
SELECT NomCoureur, CodeEquipe, CodePays, SUM(TempsRéalisé) AS Total
FROM PARTICIPER A, COUREUR B
WHERE A.NuméroCoureur=B.NuméroCoureur and NuméroEtape<=13
GROUP BY A.NuméroCoureur, NomCoureur, CodeEquipe, CodePays
ORDER BY Total;
7 - Quel est le classement par équipe à l'issue des 13 premières étapes (nom et
temps des équipes) ?
SELECT NomEquipe, SUM(TempsRéalisé) AS Total
FROM PARTICIPER A, COUREUR B, EQUIPE C
WHERE A.NuméroCoureur=B.NuméroCoureur And
B.CodeEquipe=C.CodeEquipe
And NuméroEtape<=13
GROUP BY B.CodeEquipe, NomEquipe
ORDER BY Total;
51
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 73220 internautes nous ont dit merci ce mois-ci

j'ai besion des exercices sql avec les corrigé c obligatiore merci d'avance
Voila la correction de votre exercice et bon chance
bonjour tout le monde
voila quelque exercices +corriger en sql server et moi aussi on ai entrain de commençais le cours de sql j'ai pas bien maitriser mais avec des exercices nchaelah nchdouh :

*Afficher la liste des employés (nom et prénom) embauchés entre 1993 et 1995
select nom, prenom
from employes
where year(date_embauche) between 1993 and 1995
order by nom
*Afficher le nombre total de produits différents qui appartiennent à la catégorie 2, 3, 4, 5 ou 8. (le code_catégorie est en format texte).
select count(*) as "total catégories 2,3,4,5,8"
from produits
where code_categorie in ('2','3','4','5','8')
Afficher la liste des employés (nom, prénom, fonction) dont la fonction est « responsable » de quelque chose (ex : « responsable des ventes », « responsable du personnel » …)
select nom, prenom, fonction
from employes
where fonction like 'responsable%'
order by fonction
Afficher le montant total commandé (sans tenir compte de la remise) pour toutes les commandes dont le numéro est supérieur à 150 (on affichera également le numéro de commande)
select n_commande, sum(prix_unitaire*quantite) as total
from details_commandes
where n_commande > 11050
group by n_commande
order by n_commande
Afficher pour chaque client (code_client) le plus grand délai constaté entre la passation de la commande et l’envoi des produits, ceci pour les clients livrés en France .Vous ne ferez apparaître que les clients qui ont un délai > 20 jours..
select code_client, max(date_envoi-date_commande) as delai
from commandes
where pays_livraison = 'france'
group by code_client
having delai > 20
order by delai, code_client
Afficher la liste des commandes (numéro de commande, date de la commande) passées entre 1992 et 1994.
select n_commande, date_commande
from commandes
where year(date_commande) between 1992 and 1994
order by date_commande
Afficher la liste des produits (référence, nom, prix unitaire) dont le nom commence par « C »
select ref_produit, nom_du_produit, prix_unitaire
from produits
where nom_du_produit like 'C%'
order by ref_produit
Afficher le nombre total de fournisseurs qui habitent soit en France, soit aux USA, soit en Allemagne.
select count(*)
from fournisseurs
where pays in ('france', 'usa', 'allemagne')
Afficher le montant total commandé pour toutes les commandes dont le numéro est inférieur ou égal à 10270 (NB : on affichera également le numéro de commande).
select n_commande, sum(prix_unitaire * quantite) as total
from details_commandes
where n_commande <= 10270
group by n_commande
Afficher pour chaque catégorie de produit (code_catégorie) le nombre total d’unités commandées (NB : on utilisera ici le champ unités_commandées de la table produits).
On se limitera aux codes de catégories plus petites que 5 et au nombre total d’unités commandées supérieures à 100
select code_categorie, sum(unites_commandees) as total
from produits
where code_categorie < 5
group by code_categorie
having total >100
Liste des commandes (numéro commande, date de la commande, date d’envoi) pour lesquelles l’envoi doit intervenir au plus tard 2 semaines après la commande et dont le département de livraison est 75.
select n_commande, date_commande, date_envoi
from commandes
where left(code_postal_livraison,2) = '75'
and date_envoi - date_commande < 14
Afficher le prix du produit le moins cher pour l’ensemble des catégories 2, 4 et 5.
select min(prix_unitaire)
from produits
where code_categorie in (2,4,5)
Liste des produits (référence, nom et prix unitaire) dont le prix est compris entre 50 et 80 classés par ordre de prix et par noms de produits.
select ref_produit, nom_du_produit, prix_unitaire
from produits
where prix_unitaire between 50 and 80
order by prix_unitaire, nom_du_produit
Moyenne d’age des employés selon leur fonction.
select fonction, avg(year(current date) - year(date_naissance))
from employes
group by fonction
Trouver les pays pour lesquels nous avons 3 clients ou plus qui sont « propriétaire », « acheteur » ou « chefs des ventes »
select count(*) as "nbre clients", pays
from clients
where fonction in ('proprietaire', 'acheteur', 'chef des ventes')
group by pays
having "nbre clients" >=3
Sélectionner toutes les commandes (numéro de commandes, date de la commande, nom du client) passées par le client dont le code est « ALFKI ».
SELECT n_commande, date_commande, societe FROM commandes cd,
clients c WHERE c.code_client = cd.code_client AND c.code_client = 'ALFKI'
Afficher pour chaque client (code_client) le nombre de commandes passées auprès d’un employé français.
SELECT code_client , count(*) FROM commandes cd
JOIN employes e on cd.n_employe = cd. n_employe
WHERE e.pays = ‘France’
GROUP BY code_client
Afficher le nombre d’articles par commande (avec le numéro de commande), pour les commandes qui comportent plus de 5 articles.
SELECT n_commande, count(*) as nb
FROM details_commandes
GROUP BY n_commande
HAVING nb > 5
Montant total commandé (sans tenir compte de la remise) pour chaque produit dont le PU est égal à 90. On affichera la référence du produit, son nom ainsi que le montant total commandé.
SELECT p.ref_produit, p.nom_du_produit, sum(quantité * p.prix_unitaire) FROM details_commandes d, produits p WHERE d.ref_produit = p. ref_produit
AND p.prix_unitaire = 90
GROUP BY ref_produit, p.nom_du_produit
Afficher pour chaque produit (référence du produit, nom du produit) de la catégorie « 2 » (utiliser le code catégorie qui est en format texte) le nombre total de produits commandés (nb : on utilisera la quantité de la table détails_commandes).
NB : on ne désire pas voir apparaître les produits pour lesquels on a pas commandé plus de 100 unités.
SELECT nom_du_produit, sum(quantite) FROM produits p, details_commandes d
WHERE p.ref_produit = d.ref_produit
AND p.code_categorie = ‘2’
GROUP BY p.ref_produit, p.nom_du_produit
HAVING sum(quantite) > 100
Sélectionner tous les produits (numéro de produit, nom produit, nom catégorie) dont le code catégorie est 3 (NB : le code catégorie est stocké en format texte).
SELECT ref_produit,nom_du_produit, nom_de_categorie
FROM produits, categorie
WHERE produits.ref_produit=categorie.code_categorie
AND categorie.code_categorie='3'
Afficher pour chaque employé (numéro employé) le nombre de commandes passées.
SELECT n_employe, count(*)
FROM commandes
GROUP BY n_employe
Afficher le nombre de produits par catégorie (avec le code catégorie et le nom de la catégorie), pour les catégories qui comportent plus de 5 produits.
SELECT c.code_categorie, c.nom_de_categorie, count(p.ref_produit) as tot
FROM Categories c, produits p
WHERE p.code_categorie = c.code_categorie
GROUP BY c.code_categorie, c.nom_de_categorie
HAVING tot > 5
Valorisation du stock (en francs) pour chaque produit dont le fournisseur habite aux états-unis. On affichera la référence du produit, son nom ainsi que le montant de la valorisation.
SELECT p.ref_produit, p.nom_du_produit, p.prix_unitaire*unites_en_stock
FROM produits p, fournisseurs f
WHERE f.n_fournisseur = p.n_fournisseur
AND f.pays = 'Etats-unis'
Afficher pour toutes les commandes (numéro commande, date de la commande) livrées dans la ville d’Arhus le montant total facturé (sans tenir compte de la remise). NB : on ne souhaite pas voir apparaître les commandes dont le montant total facturé est inférieur à 5000.
SELECT c.n_commande, c.date_commande, sum(prix_unitaire * quantite) as tot
FROM commandes c, details_commandes d
WHERE d.n_commande = c.n_commande
AND ville_livraison = 'arhus'
GROUP BY c.n_commande, c.date_commande
HAVING tot >5000
Afficher la liste des fournisseurs (nom société) qui proposent au moins un produit dont le prix est inférieur ou égal à 25. NB : On ne demande pas d’afficher le nombre de produits proposés par chaque fournisseur.
SELECT societe FROM Fournisseurs f, produits p
f.n_fournisseur = p.n_fournisseur
AND p.prix_unitaire <=25
GROUP BY societe
Afficher pour chaque client (nom société) le nombre total d’unités commandées pour le produit dont la référence est 1 (ref_produit est en format texte). On présentera les résultats par ordre alphabétique des noms de société.
SELECT societe, sum(quantite) FROM clients c, commandes cd, details_commandes d
WHERE cd.code_client = c.code_client AND d.n_commande = cd.n_commande
AND ref_produit = 1
GROUP BY societe
ORDER BY societe
Afficher pour chaque client (nom société) le nombre total de commandes à livrer après le 31 mai 1994 (utiliser le champ a_livrer_avant). Si ce nombre est inférieur à 10, on n’affichera pas le client.
SELECT societe, count(n_commande) as nb FROM clients c, commandes cd
WHERE cd.code_client = c.code_client
AND a_livrer_avant >= '1994-05-31'
GROUP BY societe
HAVING nb >=10
Afficher le nombre total d’unités commandées (utiliser le champ unites_commandees) pour chaque fournisseur (on affichera également le numéro du fournisseur et le nom de la société).
NB : on ne désire pas voir apparaître les fournisseurs qui n’ont rien commandé.
SELECT p.n_fournisseur, societe, sum(unites_commandees) as total FROM Fournisseurs f, produits p
WHERE f.n_fournisseur = p.n_fournisseur
GROUP BY p.n_fournisseur, societe
HAVING total <>0
Afficher le nombre d’employés embauchés entre 1993 et 1999 et qui n’habitent pas au Brésil, en Argentine, au Paraguay, au Chili ou à Cuba. Nb : on ne veut obtenir qu’un seul nombre.
SELECT count(*) from employes
WHERE year(date_embauche) between 1993 and 1999 and pays NOT IN ('bresil', 'argentine', 'paraguay', 'chili', 'cuba')
Afficher pour chaque commande (numéro commande, date de commande) le nombre de produits différents commandés dont le prix unitaire est >= 150
SELECT c.n_commande, date_commande, count(ref_produit) FROM commandes c, details_commandes d WHERE c.n_commande = d.n_commande
AND d.prix_unitaire>=150
GROUP BY c.n_commande, date_commande
Afficher pour chaque messager (numéro messager, nom messager) le nombre de commandes passées.
SELECT m.n_messager, nom_du_messager, count(n_commande)
FROM messagers m, commandes c
WHERE c.n_messager = m.n_messager
GROUP BY m.n_messager, nom_du_messager
Afficher la liste des catégories (nom catégorie, code catégorie, nombre d’unités en stock) pour lesquelles le nombre total d’unités en stock est inférieur à 200
SELECT c.code_categorie, nom_de_categorie, sum(unites_en_stock) as stock FROM categories c , produits p WHERE p.code_categorie = c.code_categorie
GROUP BY c.code_categorie, nom_de_categorie
HAVING stock <=200
Afficher pour chaque destinataire (nom destinataire) le nombre total de produits commandés qui ont la référence 2. On présentera les résultats par ordre alphabétique des noms de destinataire.
SELECT destinataire, sum(quantite) FROM commandes cd, details_commandes d
WHERE d.n_commande = cd.n_commande
AND ref_produit = 2
GROUP BY destinataire
ORDER BY destinataire
Afficher pour les catégories 1, 3, 5, 7 et 8 le nombre total d’unités commandées (utiliser le champ « unites_commandees » de la table produits)
On affichera le code de la catégorie et le nom de la catégorie si le nombre total d’unités commandées est différent de 0.
SELECT c.code_categorie, nom_de_categorie, sum (unites_commandees) as tot
FROM produits p, categories c
WHERE c.code_categorie=p.code_categorie
AND c.code_categorie IN (1,3,5,7,8)
GROUP BY c.code_categorie, nom_de_categorie
HAVING tot <> 0
Liste des employés qui habitent dans une ville où se situe au moins 1 fournisseur
SELECT DISTINCT f.Ville, e.Nom FROM Fournisseurs f, Employes e
WHERE f.Ville = e.Ville
Afficher pour chaque ville de mes fournisseurs le nombre d'employés travaillant dans cette ville
SELECT f.Ville, count(N_employe) from Fournisseurs f, Employes e
WHERE f.Ville *= e.Ville
GROUP BY f.Ville
Afficher la liste des clients qui n'ont jamais commandé à un fournisseur du royaume-uni
SELECT * FROM Clients where Code_client not in (
SELECT distinct co.Code_client
FROM Commandes co, Details_commandes dc, Produits pro, Fournisseurs f
WHERE co.N_commande=dc.N_commande and dc.Ref_produit=pro.Ref_produit
AND f.N_fournisseur = pro.N_fournisseur
AND f.Pays = 'Royaume-Uni')
Afficher le CA de l'année 1994 pour les clients qui n'ont rien commandé en 1995
SELECT co.Code_client, sum(dc.Prix_unitaire * Quantite)
FROM Commandes co, Details_commandes dc
WHERE co.N_commande=dc.N_commande
and year(Date_commande)=1994
and co.Code_client not in (
SELECT co.Code_client
FROM Commandes co, Details_commandes dc
WHERE co.N_commande=dc.N_commande
and year(Date_commande)=1995
GROUP BY co.Code_client )
GROUP BY co.Code_client
Afficher la liste de toutes les villes qui contiennent au moins 1 client ou 1 fournisseur
SELECT Ville from Fournisseurs UNION SELECT Ville from Clients
ORDER BY Ville
merci essadouq j'ai passé mon exam ds sql et j l'ai réussi :) mais j vais travailler cette série .
dis moi t poura m'aider si j saurais po repondre :d:d:d

je veux des exercies sur sql server plzzzzzzzzzzzzzzzzzzzzzzzzz
salam .
moi aussi j'en ai besoin.
merci
Messages postés
22
Date d'inscription
jeudi 17 juillet 2008
Statut
Membre
Dernière intervention
14 septembre 2010
18
exercices corrigés sur les requêtes sql avec une interface de commande
http://nte-socio.univ-lyon2.fr/Marc_Grange/SQL6.htm
prend se site la http://allforup.blogspot.com/ ila des exercice manifique .bon courrage
salut
si jamais t'as trouvé des adresses interesantes tu me les passes !!!
merci d'avance
slt ana 9en9ra fi ista filiere devellopent informatique o 3andi mochekil fi sql svp sefedolya les excercice o la kan chiwahed 3ando l'examan ta3 hadak 3am o mesaho yesefdo lya
Filière : TSDI Epreuve : Pratique
Niveau : Technicien Spécialisé
Durée : 4 h 00 Barème : 40 Pts

Variante n° 1

On veut développer une application qui gère les rencontres des tournois de Tennis d’une saison donnée.

Chaque joueur a un nom et un sexe. Deux joueurs peuvent former une équipe. Un tournoi est identifié par son nom et se déroule dans un pays donné à une date prévue. À la fin d’un tournoi, un joueur ou une équipe participant à ce tournoi obtient un score qui représente le nombre de tours passés dans le tournoi (1er tour vaut 1 point, 2ème tour vaut 2 points, etc.). On attribue à chaque tournoi un coefficient selon son importance.
Le score final d’un joueur (ou d’une équipe) est obtenu de la manière suivante :
score  coefficient
Pour les n tournois de l’année. Les joueurs (ou équipes) sont classés par ordre décroissant de leur score final.

Pour assurer cette gestion, le schéma relationnel suivant a été établi :

Joueur (NoJoueur, NomJoueur, Sexe, NoEquipe)
Equipe (NoEquipe)
Tournoi (NoTournoi, NomTournoi, Date, Coef, Pays)
Jeu_Simple (NoJoueur, NoTournoi, Score_Joueur)
Jeu_Double (NoEquipe, NoTournoi, Score_Equipe)




TRAVAIL À FAIRE

I Création de la base de données

1. Créer la base de données sous SQL SERVER 2 pts
2. Créer trois enregistrements par table

II Application

1. Créer une application MDI avec menu qui permet d’exécuter les traitements suivants : 1 Pt

2. Mise à jour de la table Joueur. Prévoir les boutons : Ajouter, Modifier, Enregistrer, Supprimer, Fermer et des boutons de déplacement entre les enregistrements. 2 pts


3. Mise à jour de la table Tournoi. Prévoir les boutons : Ajouter, Modifier, Enregistrer, Supprimer, Fermer et des boutons de déplacement entre les enregistrements. 2 pts

4. Former des équipes constituées de deux joueurs ; l’utilisateur saisi le n° d’équipe et sélectionne les deux joueurs dans deux listes de choix 2 pts

5. Enregistrer le score d’un jeu simple. 2 pts
Tous les champs sont requis, le NoJoueur et le NoTournoi sont à choisir dans des zones de listes toutes les données du joueur choisi et le tournoi choisi sont affichées.


6. Enregistrer le score d’un jeu double. 2 pts
au choix de l’équipe, les noms des deux joueurs sont affichés.

7. Créer un formulaire qui affiche pour un pays donné, tous les tournois qui s’y déroulent. Trier le résultat par importance de tournoi (coefficient) décroissante. 2 pts


8. Calculer pour un joueur donné, ou une équipe le score total (somme des scores pondérés) . 2 pts

9. Imprimer la liste des joueurs masculins participants à un tournoi donné 2 pts

10. Imprimer les dix premiers joueuses classées en ordre décroissant (selon le score final) 2 pts

11. Créer un graphique représentant le nombre de participants par pays de tournoi 3 pts

12. Créer un programme d‘installation de votre application 3 pts
Le programme d’installation doit créer la base de données si elle n’existe pas.


III Web

13. Créer une page Web renvoyant tous les tournois de l’année (NomTournoi, Date, Coef) 2 pts

14. au clic sur le nom d’un tournoi l’utilisateur peut afficher la liste des joueurs y participants 2 pts

15. Au clic sur le nom d’un joueur, afficher la lise des tournois, auxquels il a participé triés par date 2 pts

16. Prévoir un formulaire d ‘enregistrement d’un joueur via une interface Web. Le joueur doit remplir toutes les informations relatives aux champs des tables Joueur, Equipe et Tournoi. (Le contrôle de saisie est obligatoire) 2 pts

17. A la validation d’un enregistrement, un code de six caractères doit être généré, ce code va permettre au joueur de se connecter pour faire une mise à jour des données saisies via l’interface Web.
• Le code généré est unique pour chaque joueur doit être enregistré dans la base de données ( Faire les modifications nécessaires) 2 Pts
18. Prévoir une interface d’authentification des joueurs enregistrés. Le joueur doit saisir son Nom et son Code (Code généré) et une fois les données sont correctes, seules les informations relatives au joueur seront affichées dans une page web 3 Pts
Filière : TSDI Epreuve : Pratique
Niveau : Technicien Spécialisé
Durée : 4 h 00 Barème : 40 Pts

Variante n° 1

On veut développer une application qui gère les rencontres des tournois de Tennis d’une saison donnée.

Chaque joueur a un nom et un sexe. Deux joueurs peuvent former une équipe. Un tournoi est identifié par son nom et se déroule dans un pays donné à une date prévue. À la fin d’un tournoi, un joueur ou une équipe participant à ce tournoi obtient un score qui représente le nombre de tours passés dans le tournoi (1er tour vaut 1 point, 2ème tour vaut 2 points, etc.). On attribue à chaque tournoi un coefficient selon son importance.
Le score final d’un joueur (ou d’une équipe) est obtenu de la manière suivante :
score  coefficient
Pour les n tournois de l’année. Les joueurs (ou équipes) sont classés par ordre décroissant de leur score final.

Pour assurer cette gestion, le schéma relationnel suivant a été établi :

Joueur (NoJoueur, NomJoueur, Sexe, NoEquipe)
Equipe (NoEquipe)
Tournoi (NoTournoi, NomTournoi, Date, Coef, Pays)
Jeu_Simple (NoJoueur, NoTournoi, Score_Joueur)
Jeu_Double (NoEquipe, NoTournoi, Score_Equipe)




TRAVAIL À FAIRE

I Création de la base de données

1. Créer la base de données sous SQL SERVER 2 pts
2. Créer trois enregistrements par table

II Application

1. Créer une application MDI avec menu qui permet d’exécuter les traitements suivants : 1 Pt

2. Mise à jour de la table Joueur. Prévoir les boutons : Ajouter, Modifier, Enregistrer, Supprimer, Fermer et des boutons de déplacement entre les enregistrements. 2 pts


3. Mise à jour de la table Tournoi. Prévoir les boutons : Ajouter, Modifier, Enregistrer, Supprimer, Fermer et des boutons de déplacement entre les enregistrements. 2 pts

4. Former des équipes constituées de deux joueurs ; l’utilisateur saisi le n° d’équipe et sélectionne les deux joueurs dans deux listes de choix 2 pts

5. Enregistrer le score d’un jeu simple. 2 pts
Tous les champs sont requis, le NoJoueur et le NoTournoi sont à choisir dans des zones de listes toutes les données du joueur choisi et le tournoi choisi sont affichées.


6. Enregistrer le score d’un jeu double. 2 pts
au choix de l’équipe, les noms des deux joueurs sont affichés.

7. Créer un formulaire qui affiche pour un pays donné, tous les tournois qui s’y déroulent. Trier le résultat par importance de tournoi (coefficient) décroissante. 2 pts


8. Calculer pour un joueur donné, ou une équipe le score total (somme des scores pondérés) . 2 pts

9. Imprimer la liste des joueurs masculins participants à un tournoi donné 2 pts

10. Imprimer les dix premiers joueuses classées en ordre décroissant (selon le score final) 2 pts

11. Créer un graphique représentant le nombre de participants par pays de tournoi 3 pts

12. Créer un programme d‘installation de votre application 3 pts
Le programme d’installation doit créer la base de données si elle n’existe pas.


III Web

13. Créer une page Web renvoyant tous les tournois de l’année (NomTournoi, Date, Coef) 2 pts

14. au clic sur le nom d’un tournoi l’utilisateur peut afficher la liste des joueurs y participants 2 pts

15. Au clic sur le nom d’un joueur, afficher la lise des tournois, auxquels il a participé triés par date 2 pts

16. Prévoir un formulaire d ‘enregistrement d’un joueur via une interface Web. Le joueur doit remplir toutes les informations relatives aux champs des tables Joueur, Equipe et Tournoi. (Le contrôle de saisie est obligatoire) 2 pts

17. A la validation d’un enregistrement, un code de six caractères doit être généré, ce code va permettre au joueur de se connecter pour faire une mise à jour des données saisies via l’interface Web.
• Le code généré est unique pour chaque joueur doit être enregistré dans la base de données ( Faire les modifications nécessaires) 2 Pts
18. Prévoir une interface d’authentification des joueurs enregistrés. Le joueur doit saisir son Nom et son Code (Code généré) et une fois les données sont correctes, seules les informations relatives au joueur seront affichées dans une page web 3 Pts
hiba1983
Messages postés
5
Date d'inscription
dimanche 12 juin 2011
Statut
Membre
Dernière intervention
13 juin 2011

stttttttttp siham bientoo EFF si t'as recu la correction de cette variante tu me l passe le plus tot possible surtt la partie d WEB
prend se site la http://allforup.blogspot.com/ ila des exercice manifique .bon courrage
merci beaucoup mes amis...
soit le modele rela tionnel suivant:
DEPT</gras>(DNO, DNOM,DIR,VILLE)
EMP(ENO,ENOM,PROF,DATEEMB,SAL,COMM,DNO)

1°aficher le nom du département de chaque employé
2°donner les emplois ayant le salaire moyen le plus bas;donnez aussi leur salaire moyen
3°donner la liste des employés ayant une commission
4°donner le nombre d'employés du departement PRODUCTION
5°les numeros de departement et leur salaire maximum
6°les professions et leurs salaires moyen
7°donner les departements qui n'ont pas d'employés
Messages postés
22
Date d'inscription
jeudi 17 juillet 2008
Statut
Membre
Dernière intervention
14 septembre 2010
18
svp j'ai une question :
est ce qu'on est obliger d'utiliser à chaque fois :

select A.num1 , B.num2
from table1 A , table2 B
where A.num1 = B.num2


même si les noms des champs sont différents

ou bien on peut écrire comme ça :

select num1 , num2
from table1 , table2
where num1 = num2

si parfois c'est obligatoire quand ça s'agit d'une jointure et qu'ont a le meme nom dans les deux tableau
Merci essadouq pour tes exercices, ça tombe super bien car je révise le SQL car j'ai bientôt un examen, je ne suis pas tellement bon bon en SQL... ^^

J'aurai une question sur la correction du°4

4- Quelles sont les moyennes par matière ?
SELECT LibelléMat, AVG(MoyEtuMat)
FROM MOYETUMAT
GROUP BY LibelléMat ;


Pourquoi après FROM, essadouq a mis MOYETUMAT sachant que cette table n'existe pas ?!

Merci bien de répondre ça serait trop gentil. :D
Je peux de répondre à la question de Box:
Pourquoi après FROM, essadouq a mis MOYETUMAT sachant que cette table n'existe pas ?! Car il baser sur la question 3 et le nom MOYETUMAT n'est pas nom de table c'est un nom de vues 3 et aussi le champs MoyEtuMat c'est un champs dans le vues3.
je souhaite de bien compris ma réponse et bon chance...

Bonjour, je cherche des exerices du triggers
Bonjour,
j'ai besoin de ton aide j'ai besoin de telecharger sql serveur et je sais pas comment
salut
merci essadouq
Messages postés
4
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
3 juin 2009

Bonjour tt le monde,
Je viens de voir les exercices qu'a publié essadouq, le samedi 12 mai 2007 (y'a un peu de temp :-) ). Pr le 3ème exercice (celui du tour de france), je pense que la sixième requête ne répond pas à la question demandée, car on cherche le classement général des coureurs à l'issue des 13 premières étapes donc les coureurs doivent avoir parcouru les 13 premières étépes pr pouvoir faire ensuite leur classement, alors que la requête n'a pas répondu à cette exigence par la condition 'NuméroEtape<=13'.
Je pense que la bonne réponse est la suivante:
SELECT NomCoureur, codeEquipe, CodePays, Sum(TempRéalisé) as TempCoureur FROM Coureur C, Participer P
WHERE C.NuméroCoureur = P.NuméroCoureur AND NuméroEtape between (1,13) AND count(distinct NuméroEtape) = 13
GROUP BY NomCoureur

On a éxigé un filtrage sur NuméroEtape: seulement ceux entre 1 et 13
je voulais savoir comment afficher la moyenne des notes par epreuve par etablissement d'un examen en SQL
1 2