Exercice sql server

Résolu/Fermé
chaicoo4 Messages postés 16 Statut Membre -  
hiba1983 Messages postés 3 Statut Membre -
salut
pourrai-le avoir des exercices sur sql server merçi ...

23 réponses

  • 1
  • 2
  1. essadouq
     
    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;
    52
    1. toutou
       
      j'ai besion des exercices sql avec les corrigé c obligatiore merci d'avance
      0
    2. lamia
       
      Voila la correction de votre exercice et bon chance
      0
  2. lora
     
    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
    15
  3. sara84
     
    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
    6
  4. Amourdefleure
     
    je veux des exercies sur sql server plzzzzzzzzzzzzzzzzzzzzzzzzz
    4
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. MetaHack Messages postés 20 Statut Membre 32
     
    exercices corrigés sur les requêtes sql avec une interface de commande
    http://nte-socio.univ-lyon2.fr/Marc_Grange/SQL6.htm
    3
  7. saad
     
    salut
    si jamais t'as trouvé des adresses interesantes tu me les passes !!!
    merci d'avance
    2
  8. siham
     
    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
    2
    1. CHEMED
       
      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
      0
    2. CHEMED
       
      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
      0
    3. hiba1983 Messages postés 3 Statut Membre
       
      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
      0
  9. sozanne
     
    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
    1
  10. MetaHack Messages postés 20 Statut Membre 32
     
    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

    1
    1. hbagui
       
      si parfois c'est obligatoire quand ça s'agit d'une jointure et qu'ont a le meme nom dans les deux tableau
      0
  11. Box
     
    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
    0
    1. assia0805
       
      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...
      0
  12. fichou
     
    Bonjour,
    j'ai besoin de ton aide j'ai besoin de telecharger sql serveur et je sais pas comment
    0
  13. yassouVFP Messages postés 4 Statut Membre
     
    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
    0
  14. sangalaba
     
    je voulais savoir comment afficher la moyenne des notes par epreuve par etablissement d'un examen en SQL
    0
  • 1
  • 2