Les requêtes, langage SQL

exercices
cuy copyleft
  See You Why?  

Cette page contient des exercices proposés dans ce cours d'Access... dont les solutions, les réponses proposées sont accessibles aussi.
Un simple 'clic' sur le lien présent à la suite de chaque énoncé d'exercices vous permet de lire ou relire la réponse de l'exercice.
Bon amusement avec cette collection d'exercices.

La numérotation des requêtes est volontairement aléatoire.

 

Requêtes d'interrogation (projection et sélection simples)

Requêtes d'interrogation (projection et sélection avec calcul et/ou regroupement)

Requêtes d'interrogation (jointures)

Requêtes de modification

 

 

 

Requêtes d'interrogation (projection et sélection simples)

 

 

Q1

 

Comment traduire en SQL la requête suivante :

réponse ici

 

 

Q84
(d'après http://www.restena.lu/ltecg/Enseignement/EST/13CG/Informatique/Exercices/COURS97.doc)

 

 

 

Afficher les nom et prénom de tous les animateurs.

réponse ici

 

 

 

 

 

Q83

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL la requête : "Afficher les dates auxquelles il y a des cours triés chronologiquement." ?

réponse ici

 

 

Q82

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84,
1. combien de champs seront affichés ?
2. combien d'enregistrements seront affichés ?
en utilisant la requête :

SELECT *
FROM participants

réponse ici

 

 

Q81

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL la requête : "afficher le code entreprise, les noms et prénoms des participants venant de l’entreprise dont le code est 33336".

réponse ici

 

 

Q80

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL la requête : "Afficher le code du cours, la date et le code du thème de tous les cours qui ont eu lieu le 22 janvier 2007".

réponse ici

 

 

 

Q79

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84,
qu'obtient-on en utilisant la requête :

SELECT matricule_animateur, date
FROM cours
WHERE date BETWEEN #01/01/07# AND #31/01/07# ;

réponse ici

 

 

Q44 (d'après http://homepage.bluewin.ch/wstucki/Requetes.htm)

Requêtes de sélection fondées sur une/des période(s) de temps

Nous travaillons dans une table qui pourrait être définie ainsi :
tblVacances(NomEmploye,debutVac,FinVac)

Une période est délimitée par une date de début et une date de fin.
Par exemple, on gère les demandes de vacances des employés et on désire obtenir la liste de tous les employés en vacances quelques jours durant la période du 15/07/2001 au 15/08/2001.
La table aura au minimum trois rubriques ou champs : NomEmployé, DébutVac, FinVac.

Ceci signifie que nous devons rechercher les intervalles de dates suivants :

  • Ceux qui débutent avant le 16 juillet, mais qui terminent avant le 16 août et après le 14 juillet. La dernière condition de terminaison exclut les employés dont les vacances complètes ont lieu avant la période indiquée.
  • Ceux qui débutent avant le 16 juillet, et qui terminent après le 14 août.
  • Ceux qui débutent après le 14 juillet et qui terminent avant le 16 août.
  • Ceux qui débutent après le 14 juillet et avant le 16 août et qui terminent après le 16 août. La seconde condition de début exclut les employés dont les vacances complètes ont lieu après la période indiquée

La grille de la requête, sur le requêteur graphique d'Access, aura donc l'aspect suivant :

Nous avons donc quatre critères de sélection. Chaque critère répond à l'une des questions.

Quel sera le code SQL de la requête ?

réponse ici

 

 

 

 

 

 

Q3

 

Que va effectuer la requête suivante :
SELECT *
FROM ETUDIANT
WHERE Ville IS NOT NULL ;

réponse ici

 

 

Q78

Les requêtes suivantes vont-elles donner le même résultat ? (N'oubliez pas de détailler votre réponse, un OUI ou un NON serait un peu court ;o)

(1)
SELECT code_cours, date
FROM cours
WHERE date = #08/03/07# OR date = #10/09/07#

ou bien

(2)
SELECT code_cours, date
FROM cours
WHERE date BETWEEN #08/03/07# OR #10/09/07#

ou bien

(3)
WHERE date IN (#08/03/07#, #10/09/07#)

ou bien

(4)
WHERE date BETWEEN #08/03/07# and #10/09/07#

(5)
WHERE date = #08/03/07# AND date = #10/09/07#

réponse ici

 

 

Q5

 

Que répondez-vous à un élève qui vous demande la différence entre un filtre et une requête ?

réponse ici

 

 

 

Q14

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)

Requête : Afficher toutes les informations concernant les clients.


réponse ici

 

 

 

Q77

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL la requête : "Afficher les codes cours, le droit d’inscription et la prime de responsabilité des cours dont le droit d’inscription est en dessous de 600 € et la prime de responsabilité est supérieure à 100 €."

réponse ici

 

 

 

 

 

Q15

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)

Requête en SQL : Afficher les nom et prénom des clients.

réponse ici

 

 

 

 

Q76

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, que va écrire la requêteSQL :

SELECT nom, prenom
FROM participants
WHERE nom LIKE “N*”

réponse ici

 

 

Q75

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL la requête : "Afficher tous les noms et prénoms des participants dont le nom se termine avec la lettre N trié suivant l’ordre alphabétique des noms et prénoms"

réponse ici

 

 

 

Q16

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)

Requête en SQL : Afficher les nom et prénom des clients qui habitent Mouscron.

réponse ici

 

 

 

 

 

Q17

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)

Requête en SQL : Afficher les nom et prénom des clients dont les prénoms sont Marc ou Philippe.

réponse ici

 

 

 

 

 

Q74

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL la requête : "Afficher tous les noms et prénoms des participants dont les 2e et 5e lettres du nom sont respectivement C et H"

réponse ici

 

 

 

 

 

Q18

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)

Requête en SQL : Afficher les nom et prénom des clients dont le nom commence par une lettre comprise entre B et E.

réponse ici

 

 

 

 

 

Q19

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)

Requête en SQL : Afficher les villes où l'on a des clients.

réponse ici

 

 

 

 

 

Q73

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment demander en SQL d'afficher les noms et prénoms de tous les participants qui sont nés en 68.

réponse ici

 

 

 

 

Q61

Considérons une table 'employes', décrite ci après :

employes(cleposte, prenom, nom, poste, bureau, brutannuel, commission, statut, permanence, commentaire)

Quelle requête (SQL et requêteur graphique) permettra de répondre à la question "Affichez le prénom et le nom des personnes ayant pour prénom 'roger'." ?

réponse ici

 

 

 

 

 

Requêtes d'interrogation (projection et sélection avec calcul ou regroupement)

 

 

Q4

 

Que va effectuer la requête suivante :
SELECT Nom, Prénom, Salaire * 12
FROM PERSONNEL
WHERE Salaire * 12 > 45000
order by Salaire DESC, Nom ASC;

réponse ici

 

 

 

 

 

Q23

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)

Requête en SQL : Afficher le nombre de produits dont le prix TVA comprise est supérieur à 50 €... on supposera que tous les produits sont soumis à une TVA de 21 %.

réponse ici

 

 

 

 

 

Q24

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Requête en SQL : Combien de produits, dont le Codeprod = FL0425 (fruits et légumes, poires, beurrey-hardy) ont été commandés ?

réponse ici

 

 

 

Q65

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL les requêtes :
Calculer le total des heures prestées par l’animateur ayant le numéro matricule 19800202222.
Afficher le numéro matricule et le nombre total d’heures prestées par chaque animateur tirés suivant l’ordre croissant des numéros matricule.

réponse ici

 

 

 

 

 

Q66

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL la requête :
Calculer le total des heures prestées par les animateurs pour tous les cours.
Calculer le total des heures prestées par les animateurs pour le cours no 005.

réponse ici

 

 

 

 

 

Q67

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL la requête :
Quel est le code du cours dont le droit d’inscription est le plus élevé ?
Quel est le code du cours dont le droit d’inscription est le plus bas ?

réponse ici

 

 

 

 

Q72

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL la requête : "Compter le nombre de participants nés en 68."

réponse ici

 

 

 

 

 

Q69

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL les requêtes :
1. Quel est le nombre de cours organisés ?
2 . Combien de participants a-t-on eus dans tous les cours ?
3 . Combien de participants a-t-on eus pour le cours no 026 ?

réponse ici

 

 

 

 

 

 

Q68

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL la requête :
Calculer la moyenne des droits d’inscription, des primes de responsabilité et des tarifs heure.
Combien de cours organise-t-on pour chaque niveau ?

réponse ici

 

 

 

 

 

 

Q64

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment écrire en SQL les 3 requêtes suivantes :
Afficher le code entreprise et le nombre total de participants par entreprise.
Afficher le numéro matricule et le nombre total d’heures prestées pour les animateurs ayant presté plus de 10 heures.
Afficher le numéro matricule et le nombre total d’heures prestées pour les animateurs ayant presté plus de 10 heures et qui sont nés en 68.

réponse ici

 

 

 

Requêtes d'interrogation (jointures)

 

 

Q2

 

Que va effectuer la requête suivante :
SELECT * FROM Produit, Détail_Commande
WHERE Produit.CodePrd=Détail_Commande.CodePrd ;

réponse ici

 

 

 

 

Q7 (d'après : http://cedric.cnam.fr/vertigo/Annales/BD-B/040626.pdf)

 

Dans le cadre de la réforme de la sécurité sociale le gouvernement veut créer un “dossier médical partagé” qui permettra en quelques minutes au médecin de savoir tous les actes médicaux, tous les traitements mais aussi tous les antécédents d’un patient. La gestion de tels dossiers peut être facilitée par un SGBD relationnel avec le schéma (simplifié) suivant (les attributs clés sont soulignés) :
– Personne(Noss, Nom, Prénom, Adresse)
– Consultation(NoCons, Date, Symptome, NossPat#, NossMed#)
– Prescription(NoCons#, NomMed#)
– Medicament(NomMed, NomSubst, Prix)
Une personne (patient ou médecin) a un numéro de sécurité social (Noss), un nom, un prénom et une adresse.
Chaque consultation a un numéro unique (NoCons), une date, le numéro de sécurité social du patient et du médecin ainsi que le symptôme du patient (nous supposons que chaque patient n’a qu’un seul symptôme au moment d’une consultation). [La difficulté est qu'un médecin (=une personne) offre une consultation à un patient (=une personne) qui bénéficie de la consultation...]
Les médicaments prescrits après une consultation sont stockés dans la table Prescription (un traitement est composé de toutes les prescriptions associées à la même consultation).
Pour chaque médicament on connaît son nom, la substance active et le prix.

Question relative à la conception :
Dessinez un schéma Entité-Association du schéma relationnel précédent. Indiquez également les cardinalités des associations en prenant en compte les clés et la contrainte qu’une clé étrangère ne peut pas avoir la valeur NULL.

réponse ici

 

 

 

 

Q10

 

DISQUE (CodeOuv, Titre, Style, Pays, Année, Producteur)
Cette relation regroupe un certain nombre d’informations sur un disque : le code d’ouvrage (CodeOuv) qui est la clé de la relation, le titre, le style (par exemple Jazz ou Rock), le pays, l’année de sortie et le producteur (par exemple Barclay). Ces informations sont générales et pour un enregistrement de la relation DISQUE, on aura n (n > 1) enregistrements dans la relation E_DISQUE correspondant aux exemplaires de ce disque possédés par la médiathèque.

E_DISQUE (CodeOuv, NumEx, DateAchat, Etat)
Cette relation contient un enregistrement pour chaque exemplaire de disque possédé par la médiathèque. Chaque exemplaire est identifié par son code (CodeOuv) et un numéro d’exemplaire (NumEx). On trouve également la date d’achat (DateAchat) et l’état du disque (par exemple Neuf ou Abimé).

LIVRE (CodeOuv, Titre, Genre, Editeur, Collection)
Cette relation regroupe un certain nombre d’informations sur un livre : le code d’ouvrage (CodeOuv) qui est la clé de la relation, le titre, le genre (par exemple Policier ou Roman), l’éditeur (par exemple Glénat) et la collection (par exemple livre de poche). Ces informations sont générales et pour un enregistrement de la relation LIVRE, on aura n (n > 1) enregistrements dans la relation E_LIVRE correspondant aux exemplaires de ce livre possédés par la médiathèque.

E_LIVRE (CodeOuv, NumEx, DateAchat, Etat)
Cette relation contient un enregistrement pour chaque exemplaire de livre possédé par la médiathèque. Chaque exemplaire est identifié par son code (CodeOuv) et un numéro d’exemplaire (NumEx). On trouve également la date d’achat (DateAchat) et l’état du livre (par exemple Neuf ou Abimé).

AUTEUR (CodeOuv, Identité)
Chaque enregistrement de cette relation correspond à l’un des auteurs d’un ouvrage particulier (livre ou disque). L’attribut identité peut avoir pour valeur un nom de personne (par exemple Alexandre Dumas) ou un nom de groupe (par exemple Rolling Stones).

ABONNE (NumAbo, Nom, Prénom, Rue, Ville, CodeP, Téléphone)
Cette relation regroupe les informations sur les abonnés de la médiathèque : NumAbo qui identifie tout abonné de manière individuelle, le nom (Nom) et le prénom (Prénom) de l’abonné, son adresse (Rue, Ville, CodeP), son téléphone (Téléphone).

PRET (CodeOuv, NumEx, NumAbo, DatePrêt)
Cette relation contient un enregistrement par prêt effectué. Pour chaque prêt, on trouve l’identifiant du livre ou du disque (code ouvrage CodeOuv et numéro d’exemplaire NumEx) , le numéro de l’abonné effectuant le prêt (NumAbo) et enfin la date du prêt (DatePrêt). Cette relation ne contient des informations que pour les prêts en cours c’est à dire pour les emprunts non encore rendus.

PERSONNEL (NumEmp, Nom , Prénom, Adresse, Fonction, Salaire)
Cette relation contient un enregistrement par employé. Chaque employé est identifié par un numéro NumEmp. Pour chaque employé, la relation donne son nom, son prénom, son adresse, sa fonction et son salaire mensuel.

 

Dans une une application sur la gestion de livres et de disques dans une médiathèque, dont voici (ci-dessus) le schéma de relation, comment écrire en SQL la requête : "Quel est le contenu de la relation LIVRE ?"

réponse ici

 

 

 

 

Q11

 

Comment écrire (voir Q10) en SQL la requête : "Quels sont les titres des romans édités par Flammarion ?"

réponse ici

 

 

 

Q12

 

Comment écrire (voir Q10) en SQL la requête : "Liste des titres que l’on retrouve à la fois comme titre de disque et titre de livre ?"

réponse ici

 

 

 

Q13

 

Comment écrire (voir Q10) en SQL la requête : "Quelle est l’identité des auteurs qui ont fait des disques et écrit des livres ?"

réponse ici

 

 

 

 

 

Q71 (d'après http://users.skynet.be/EICE/)

Combien de leçons ont été données par M. Suzuki ? (réponse avec requêteur graphique et en mode SQL)

Quelles remarques (positives et/ou négatives) pourrais-tu faire vis-à-vis de celui qui a créer cette table ?

Comment expliquerais-tu (et commenterais-tu le pourquoi) à un élève le 1 (près du cadre « Voiture ») et le signe ∞ à l’autre extrémité de la flèche ?

réponse ici

 

 

 

 

 

Q20

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)

Requête en SQL : Afficher les numéros des commandes passées par Ségolène Royal.

réponse ici

 

 

 

 

 

Q21

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)

Requête en SQL : Afficher les numéros des commandes passées par Ségolène Royal, en commençant par les commandes les plus récentes.

réponse ici

 

 

 

 

 

Q22

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)

Requête en SQL : Afficher les produits et leur prix TVA comprise... on supposera que tous les produits sont soumis à une TVA de 21 %.

réponse ici

 

 

 

 

 

Q25

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Requête en SQL : Quel est le prix moyen (hors TVA) des produits en catalogue ?

réponse ici

 

 

 

 

 

Q26

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Requête en SQL : Quel est le prix (hors TVA) du produit le plus cher en catalogue ?

réponse ici

 

 

 

 

 

Q27

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Requête en SQL : Pour chaque commande, quel est le nombre de références de produits commandés ?

réponse ici

 

 

 

 

 

Q28

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Requête en SQL : Pour chaque commande, si ce nombre est supérieur à 5, quel est le nombre de références de produits commandés ?

 

réponse ici

 

 

 

 

 

Q6

C
C
P)
C

R ?

 

réponse ici

 

 

 

 

 

Q29

DOCTEUR (Ddoc, Dnom, Dcom, Dspe#)
Pour chaque médecin, identifié par le numéro Ddoc, on connaît le nom Dnom, la commune d'exercice Dcom et le numéro de la spécialité Dspe.
SPECIALITE (Sspe, Slib, Sprix)
Chaque spécialité, identifiée par le numéro Sspe, est décrite par un libellé Slib {omnipraticien, cardiologue...} et le prix de la consultation de base Sprix.
PATIENT (Ppat, Pnom, Pcom, Pnais)
Sur le patient, identifié par le numéro Ppat, on recueille le nom Pnom, la commune d'habitation Pcom, la date de naissance Pnais.
VISITE (Vvis, Vdat, Vdoc#, Vpat#)
Le médecin Vdoc reçoit le patient Vpat à la date Vdat. Un médecin reçoit plusieurs patients, le même jour. Un patient peut consulter plusieurs médecins, le même jour. Un patient peut aussi consulter le même médecin au cours de la même journée. Donc, pour identifier une visite, on ajoute un numéro séquentiel Vvis.
MEDICAMENT ( Mmed, Mgen#, Mlib, Mclas, Mform, Mdos, Mtaux, Mprix)
Chaque médicament est identifié par un code Mmed, est connu sous un nom Mlib, se présente sous une forme Mform {gélules, sachets, comprimés...} et un dosage Mdos {100mg, 250mg, 500mg...}, est remboursé par la sécurité sociale selon un taux Mtaux {35%, 65%, 100%}, est au prix actuel de Mprix. Les médicaments sont répartis en plusieurs classes thérapeutiques Mclas {médicaments anti-infectieux, médicaments du système cardio-vasculaire...}.
Il existe des médicaments équivalents à d'autres, mais qui sont moins chers : les médicaments génériques sont fabriqués à partir des molécules dont les brevets sont passés dans le domaine public, ce qui permet de réduire leur prix de vente. À un médicament Mmed est associé un médicament générique Mgen s'il existe, rien sinon. Les médicaments génériques n'ont pas de médicaments génériques.
                         Exemple : 7 Egrem… a pour médicament générique : 3 Brostemux…
LIGORDON (Lvis#, Lmed#, Lqte)
Le médicament Lmed est prescrit lors de la visite Lvis en quantité Lqte. Au cours d'une même visite, plusieurs médicaments peuvent être prescrits, plusieurs lignes figurent alors dans cette table. Si aucun médicament n'a été prescrit lors d'une visite, aucune ligne n'apparaît dans cette table pour cette visite. Un même médicament peut être prescrit lors de plusieurs visites.

Requête en requêteur graphique de Access : Pour chaque médicament, afficher le montant du remboursement de la sécurité sociale, la part payée par l'adhérent et vérifier que la somme du remboursement et de la part redonne bien le prix du médicament.

réponse ici

 

 

 

 

 

Q30

DOCTEUR (Ddoc, Dnom, Dcom, Dspe#)
SPECIALITE (Sspe, Slib, Sprix)
PATIENT (Ppat, Pnom, Pcom, Pnais)
VISITE (Vvis, Vdat, Vdoc#, Vpat#)
MEDICAMENT ( Mmed, Mgen#, Mlib, Mclas, Mform, Mdos, Mtaux, Mprix)
LIGORDON (Lvis#, Lmed#, Lqte)

voir q29

Requête en requêteur graphique de Access : Afficher le Prix moyen d'un médicament.

réponse ici

 

 

 

 

Q70 (d'après http://users.skynet.be/EICE/)

D'après :

quel est le moniteur qui a donné le plus de leçons ?

réponse ici

 

 

 

Q47

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Expliquer pourquoi les requêtes suivantes ne donneront pas forcément la même réponse :

SELECT Nom, Date
FROM Clients, Commande
WHERE Clients.Codecli = Commande.Codecli ;

et

SELECT Nom, Date
FROM Clients, Commande
WHERE Clients.Codecli = Commande.Codecli
    AND Clients.Tel not null ;

réponse ici

 

 

 

Q50

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Expliquer pourquoi la requête suivante n'est d'aucune utilité :

SELECT Nom, Date
FROM Clients, Commande ;

réponse ici

 

 

 

 

 

Q49

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Expliquer pourquoi la requête suivante n'est pas d'une plus grande utilité :

SELECT Nom, Date
FROM Clients, Commande
WHERE Codecli = Codecli ;

réponse ici

 

 

Q48

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Expliquer pourquoi la requête suivante devient d'une plus grande utilité :

SELECT Nom, Date
FROM Clients, Commande
WHERE Clients.Codecli = Commande.Codecli ;

réponse ici

 

 

 

Q63
(d'après http://www.restena.lu/ltecg/Enseignement/EST/13CG/Informatique/Exercices/COURS97.doc)

En vous référant à la base Cours, dont les tables vous sont décrites plus en détail à la question 84, comment demander en SQL :

Afficher pour chaque cours le code cours, le nom et le prénom de l’animateur responsable.

Afficher pour chaque cours son code, le thème et le nom et le prénom de l’animateur responsable.

réponse ici

 

 

 

Q51

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment demander en SQL :

Pour chaque participant afficher le numéro matricule, le nom, le prénom ainsi que le nombre de cours auxquels il a participé.
Afficher le numéro matricule, le nom et le prénom ainsi que le nombre total d’heures prestées par chaque animateur.

réponse ici

 

 

 

 

 

Q52

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment demander en SQL :

Afficher pour chaque entreprise (code et nom de l’entreprise) le nombre de participants triés suivant l’ordre croissant des noms d’entreprise.

réponse ici

 

 

 

 

Q46

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment demander en SQL :

Saisir le nom d’un animateur et compter le nombre de cours qu’il a animé.
Afficher le nom des catégories pour lesquelles il y a eu plus de 3 cours.
Afficher les noms des animateurs qui ont animé plus de cours que l’animateur dont vous devez saisir le nom.

réponse ici

 

 

 

 

 

Q62

En vous référant à la base Cours, dont les tables vous sont décrites à la question 84, comment demander en SQL :

Afficher pour chaque participant son nom et son prénom, le nom de son entreprise ainsi que les thèmes (en toutes lettres) des cours auxquels il a participés (triés suivant les numéros matricules des participants et des thèmes)

réponse ici

 

 

 

Q30

Expliquez et commentez, sans connaître le modèle relationnel, à quelle question répond la requête SQL R1.

Requête SQL R1

SELECT Code Client SUM commandes

FROM Client, Articles

WHERE Client, Code client = Utiliser.code client

AND Code client = P0152

réponse ici

 

 

 

 

Requêtes de modification

 

Q31

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Requête en SQL : Ajouter un nouveau produit dans la table Produits : code=P14689 ; Désignation=Tout ce que les étudiants ont toujours voulu savoir sur le logiciel Access ; Prix unitaire hors taxes=22,00 €.

réponse ici

 

 

 

 

 

Q32

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Requête en SQL : Modifier un produit dans la table Produits : code=P14689 ; anciennement Désignation='Tout ce que les étudiants ont toujours voulu savoir sur le logiciel Access', nouvelle Designation='La bible pour un Accesseur' ; Prix unitaire non modifié.

réponse ici

 

 

 

 

 

Q33

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Requête en SQL : Augmenter de 2 % les prix de tous les produits, car l'inflation moyenne depuis la dernière mise à jour de vos prix a été de 2 %.

réponse ici

 

 

 

 

 

Q34

Clients (Codecli, Nom, Prenom, Adresse, CP, Ville, Tel)
Commande (Num, Date, #Codecli)
Produits (Codeprod, Designation, PU_HTVA)
Comporter (Codeprod, Num, Quantite)

Requête en SQL : Compte tenu des actualités, supprimer les clients issus des villes de Charleroi ou La Louvière.

réponse ici

 

 

 

 

Q35

Je travaille dans trois tables (Vente, Client et Produit)

Voici ma première requête :

SELECT C.nom, C.prénom, C.adresse, P.intitule, P.type, P.fournisseur, qté, [qté]*[prix] AS [prix total]
FROM Vente AS V, Produit AS P, Client AS C
WHERE (((C.nom)=[saisir_le_nom]) And ((V.code_produit)=P.code_produit) And ((V.code_client)=C.code_client));

Quel est le but de cette requête ?

réponse ici

 

 

 

 

 

Q36

Dans les mêmes tables que celles de l'exercice 35, comment écrire en SQL la requête qui va calculer le montant total déboursé par le même client ?

réponse ici

 

 

 

 

 

Q37

Dans le cadres des deux questions précédentes, pour rédiger un état qui devrait faire l'impression d'une facture pour ce client, il faudrait que ces deux requêtes Q35 et Q36, réponses R35 et R36, ne fassent qu'une, car en utilisant ces deux requêtes pour l'état envisagé, il y aurait un bug qui se trouverait au niveau du total à payer. Au lieu de le prendre sur la requête n°2, il demande à l'utilisateur de le saisir lui même donc au final il est faut.

Comment rédiger cette requête unique ?

réponse ici

 

 

 

 

 

Q38

Soit donné le schéma relationnel :
     Etudiants(Enumero, Enom, EAnNaissance, Einfo)
     Exams(NomCours, #Enumero, Note, Info)

Écrire, sans utiliser l’operateur logique AND, une requête SQL pour savoir les noms des ´etudiants qui ont soutenu l’examen de Base de Données (“BD”)

réponse ici

 

 

 

 

Q39

Avec le même schéma relationnel de l’exercice Q38, écrire une requête SQL qui donne les noms des cours et la note des examens passés par les étudiants nés en 1985.

réponse ici

 

 

 

 

 

Q40

Soit une table d'étudiants et anciens étudiants dont nous connaissons au moins les dates de naissance et les codes postaux de leur adresse au moment de leur inscription, il peut être intéressant de connaître le nombre de personnes par année de naissance.

Quelle requête permettrait cet affichage ?

réponse ici

 

 

 

 

 

Q41

La question 40 demandait l'affichage des nombres d'étudiants ou anciens par année de naissance, mais dans un classement non précisé (voir commentaire dans la réponse 40). La requête s'écrivait :

SELECT year(dateDeNaissance), count(*) AS combien
FROM stud_anciens GROUP BY year(dateDeNaissance)

1.- Comment obtenir la même liste, mais triée par année de naissance ?

2.- Comment obtenir cette même liste, mais triée par nombre décroissant d'inscription ?

réponse ici

 

 

 

 

 

Q42

La question 40 demandait l'affichage des nombres d'étudiants ou anciens par année de naissance, mais dans un classement non précisé (voir commentaire dans la réponse 40). La requête s'écrivait :

SELECT year(dateDeNaissance), count(*) AS combien
FROM stud_anciens GROUP BY year(dateDeNaissance)

Comment modifier cette requête pour n'avoir la liste que des hennuyers ? (habitants du Hainaut)... suggestion, penser aux codes postaux...

 

réponse ici

 

 

 

 

Q43 (d'après MT&RG)

Pour définir une requête SQL choisir requête,nouveau, ne pas ouvrir de table, puis cliquer sur le bouton SQL de la barre d'outils. Vous êtes dans une fenêtre d'édition dans laquelle nous allons taper une première requête SQL.

           SELECT all oeuvres.titre
           FROM livres, thèmes, oeuvres
           WHERE oeuvres.refthème=thèmes.numthème and livres.isbn=oeuvres.isbn and thèmes.nom = "FINANCES" ORDER BY titre;

Exécutez cette requête (icône feuille de données de la barre d'outils) , la comprendre. L'exécuter avec l'attribut distinct, puis avec l'attribut distinctrow.

Écrire une requête qui affiche les titres des livres disponibles. On utilisera le champ Sorti de la table livres. On donnera les deux façons : sans répétition et avec autant de répétitions qu'il y a d'exemplaires disponibles.

Afficher les côte et titre des livres achetés avant 1970.

Consulter l'aide sur la clause GROUP BY. Écrire une requête SQL qui affiche pour chaque oeuvre donnée par son titre, le nombre d'exemplaires présents et le prix d'achat moyen de cet ouvrage.

Requêtes imbriquées :
Calculer le prix d'achat moyen de tous les livres de la bibliothèque.
Afficher les côtes des livres dont le prix est supérieur au prix moyen.

réponse ici

 

 

 

Q45 (d'après É.C. lycée Pagnol)

Au moyen du requêteur graphique d'Access, comment élaborer la requête qui donnerait la liste des noms, prénoms et fonctions des employés (sans mise en ordre) ?

Comment l'écrire en SQL ?

réponse ici

 

 

 

 

 

Q85

 

réponse ici

 

 

 

 

Q53 (d'après É.C. lycée Pagnol)

Et la liste des clients (toutes rubriques confondues) ?

Requêteur graphique et SQL.

réponse ici

 

 

 

 

 

Q54 (d'après É.C. lycée Pagnol)

Et la liste des clients parisiens ? (sans ordre nécessaire)

Requêteur graphique et SQL.

réponse ici

 

 

 

 

 

Q55

Et les coordonnées des clients résidant à Stuttgart (nom, adresse, téléphone et fax) ?

Requêteur graphique et SQL.

Attention : La rubrique Nom n’existe pas dans Clients, et Adresse est insuffisant, il faut y ajouter code postal et ville.

réponse ici

 

 

 

 

 

Q56

 

réponse ici

 

 

 

 

 

Q57

 

réponse ici

 

 

 

 

 

Q58

 

réponse ici

 

 

 

 

Q59

A) Comment traduire en SQL la requête suivante (base Duferco2000) :

B) À quelle question répond la requête ci-dessus (base Duferco2000) :

 

réponse ici

 

 

 

 

 

Q60


A) Que va effectuer la requête suivante :
SELECT Commande.Num
FROM Commande
WHERE Clients.Codecli = Commande.Codecli AND Clients.Nom LIKE "Dalors" AND Clients.Prenom LIKE "Homère"
ORDER BY Commande.Date DESC ;

B) Si le deuxième AND avait été remplacé par un OR, à quelle question aurait répondu la requête de la question A ci-dessus ?

réponse ici