Vous êtes sur la page 1sur 5

COURS N° 5: Interrogation des Données

1) Introduction :
L’ordre SELECT constitue le sous langage d’interrogation de la Base de Données, il
permet de :
- Sélectionner certaines colonnes d’une table ;
- Sélectionner certaines lignes d’une table ;
- Combiner les informations provenant de plusieurs tables.
Syntaxe : Select [Distinct] { * | col1 [,col2 …]} From Table1 [synonyme1] [, Table2
[synonyme2]…..]
[Where Prédicat]
[Connect by coli = prior colj]
[Order by coli [Asc|Desc][ coli+1]
[Group by colK [,colL …]
[Having Prédicat]

Remarque :
- Le nom de colonne (champ) peut être préfixé du nom de la table d’appartenance ;
- Le nom de la table peut être préfixé du nom d’utilisateur (administrateur).
On considère la B.D d’une médiathèque contenant les relations (tables) suivantes :
Livre (C-Ouv, titre, genre, auteur)
Disque (C-Ouv, titre, style, producteur)
Abonnes (numA, NomA, PrenomA, VilleA)
Prêt(numA, C-Ouv, date_pret, n_ex)
Personnel (NomP, PrenomP, Adr, Fonction, Salaire)
2) Selection de colonne(s) : FROM
La clause From donne la table ou la liste des tables participant à l’interrogation ;
Remarque : quand on utilise plusieurs fois la table dans la même requête on introduit
(emploie) la notion synonyme (Alias) pour lever certaines ambigüité).
Exemple : 1) Select * From Abonne  donne la liste de tous les abonnés ;
2) Select distinct fonction From Personnel  donne la liste de différentes
fonctions des employés ;
3) Select disque.style, livre.genre From Disque, Livre
 Donne les différents styles de disques et genres de livre de la
médiathèque
3) Selection de ligne(s) : WHERE (facultative) : énonce une condition
La clause Where permet de spécifier quelles sont les lignes à sélectionner suivi d’un
prédicat, en utilisant un opérateur de comparaison et|ou logique parmi la liste des opérateurs
à savoir :
=, !=, , >, <, between (exprA and exprB), In (liste de valeurs), Exist, like (filtre), not
like,
Is null [not null], All (tout), Any (quelque), And, Or, Not
Exemples :
1) Select * From Abonne where NomAb Like ‘%A%’ or Like ‘%B%’
 donne la liste des abonnés ayant un A ou un B dans leurs noms.
Le caractère générique % remplace une chaîne de caractères ;
Le caractère générique - remplace un caractère exactement.
Exemple : like ‘Sa-i’ : Safi, Sami, …
like ‘%[M-R]’ : finisse par M jusqu’à R
like ‘%[^FMR]’ : ne contient ni F ni M ni R
2) Select nomP, prenomP From Personnel where Salaire > 25000.00
Donne le nom et prénom des employés dont le salaire est > 25000,00
3) Select * From Abonne where Ville In (‘Mosta’, ‘Oran’, ‘Alger’)
Donne la liste des Abonnés habitant Mosta, Oran, Alger
4) Select * From Disque where producteur Is Null
Donne la liste des Disques dont le producteur n’est pas renseigné

4) Tri du résultat : Order By


Order by coli [Asc|Desc][ ,coli+1…..]]
Exemple :
1) Select nomA, prenomA, From Abonne
Order by nomA Desc
 donne la liste des abonnés triée sur Nom abonnés dans l’ordre descendant (Z…A)
2) Select * From Pret Order by numA, date_pret Desc
 donne la liste des prêts effectués triée sur Num abonnés (numA) dans l’ordre ascendant
et sur date_pret dans l’ordre descendant.

5) Jointure : On peut joindre les informations de différentes tables et cela sur certaines critères :
Select col1 [, col2…..]] From Table1 [synonyme1] [, Table2 [synonyme2]…..]
Where Prédicat]
Synonyme ou Alias est utilisé pour préfixer les noms de colonnes et pour lever certaines
ambigüités si la table est utilisée plusieurs fois dans la même requête.
Exemple :
Select A.nomA, P.c-ouv From Abonne as A, Prêt as P
Where A.numA = P.numA and P.n_ex>1 ;
OU
Select A.nomA, P.c-ouv From Abonne as A Join Prêt as P On A.numA = P.numA
Where P.n_ex>1 ;
6) Sous interrogation:
Le prédicat employé (utilisé) dans une clause Where peut comporter un SELECT emboité
(imbriqué), à l’aide d’un opérateur logique. De cette manière, il est possible d’imbriquer jusqu’à 16
niveaux et plus de sous interrogation.
Exemple :
- Donner les noms des employés ayant la même fonction que « ABDI »
Select nomP From Personnel Where
Fonction = (Select Fonction From Personnel
Where NomP = « ABDI ») ;
- Donner les (noms, fonction, salaire) des employés ayant un salaire > « ABDI »
Select nomP, Fonction, Salaire From Personnel Where
Salaire > (Select Salaire From Personnel
Where NomP = « ABDI ») ;
Exercice d’application 1:
On considère la B.D d’une médiathèque contenant les relations (tables) suivantes :
Livre (C-Ouv, titre, genre, auteur)
Disque (C-Ouv, titre, style, producteur)
Abonnes (numA, NomA, PrenomA, VilleA)
Prêt(numA, C-Ouv, date_pret, n_ex)
Personnel (NomP, PrenomP, Fonction, Salaire)
Q1) quels sont les titres des romans policiers écrits par ‘Aguatha Kristi’ ?
Q2) quels sont les titres d’ouvrages que l’on retrouve à la fois comme titre de livre et titre
de disque ?
Q3) quels sont les différents styles de disque proposés ?
Q4) donnez les : noms, prénoms et salaires annuel des employés ayant plus de 550 000,00
par an, en triant le résultat sur salaire dans l’ordre descendant et sur nom dans l’ordre
ascendant ?
Q5) quels sont les abonnés dont le nom contient la chaine « ENS »

Exercice d’application 2:
Soit la B.D Bibliothèque contenant les relations (tables) suivantes :
ETUDIANT (Num_E, Nom_E, Prenom_E, Adr_E, Date_N, Nation_E)
OUVRAGE (Num_O, titre, Nom_Aut, Nation_Aut)
EDITEUR (Num_Ed, Nom_Ed, Adr_Ed)
EMPRUNT (Num_E, Num_O, Num_Ed, Dat_Emp)
Q1) donner les noms et prénoms des étudiants n’ayant jamais fait d’emprunt de livre « Java »
Q2) donner les numéros d’ouvrages dont l’auteur est « Jeorge Gardarin » et qui ne sont pas
empruntés par l’étudiant N°4
Q3) donner les noms et prénoms des étudiants qui empruntent tous les livres (ouvrages)
Q4) donner les noms des étudiants qui empruntent au moins un ouvrage dont le titre est
RESEAUX WIFI
Q5) donner les couples noms étudiants et noms auteurs de même nationalité

Exercice d’application 3:
Soit la B.D « Gestion des Commandes-Client » contenant les relations (tables)
suivantes :
CLIENT (CodC, NomC, PrenomC, VilleC, Capital)
COMMANDE (NC, DateC, CodC*)
ARTICLE (NA, NomA, PrixA, Couleur)
Exprimer en SQL les requêtes suivantes :

Q1) donner les noms et prénoms des clients ayant passés des commandes triés par ordre
alphabétiques décroissant sur la colonne Nom
Q2) quels sont les clients dont le nom contient 4 caractères maximum
Q3) donner les couples de noms de clients différents habitant la même ville
Q4) afficher les commandes du client ‘ABDI‘
Q5) donner les couples de codes de clients différents ayant commandés le même jour
Q6) donner les commandes de tous les clients dont le nom commence par A et qui ne
possèdent pas de capital
Q7) donner les noms des articles dont le prix est supérieur à tous les autres articles Blancs
Q8) donner les noms des articles dont le prix est inférieurs à l’un des articles Blancs
Q9) afficher les noms, prénoms et ville des clients qui n’ont passés aucune commandes.
FICHE de T.D (SELECT)
Exercice n° 01 :
Soit le schéma suivant :
Voiture (Matv, dat_Achat, Capac, type_pemis)
Chauffeur (Nc, nom, prenom, date_nais, date_recrut, nom_respons)
Trajet (Nt, Distance, Vill_D, Vill_A)
Permis (Nc, typ_permis, Dat_obt, lieu_obt)
Voyage (Matv, Nc, Nt, Nbpers_max, Date, Motif)
Q1) donner la liste des chauffeurs (nom, prénom) avec leurs types de permis obtenus ?
Q2) lister les distances parcourues par le chauffeur N°10 à bord des véhicules de services
Mat 5846NB200 et ce depuis le 10/01/2006 ?
Q3) donner la liste des chauffeurs (nom, prénom) portant les permis de type (catégorie C )
et effectuant le 12/03/2006 la livraison des tables bureaux du trajet Alger – Mostaganem
Q4) donner N° de voitures qui n’ont pas été utilisées en service (voyage).
Exercice n° 02 :
Soit la « Gestion Hôtelière) » comprenant les relations suivantes :
Hôtel (Cod_H, , NomH, Classe, Adresse)
Chambre (Ch, Cod_H*, catégorie, prix_loact)
Client (Cod_C, Nom_C, Ville, Tel)
Reservation (Cod_C, Ch, Dat_Deb_Reser, Nb_Jours)
1) Déterminer les clés primaire et étrangère des relations ;
2) Donner les N° de clients n’ayant jamais fait de réservation dans un hôtel de la classe
5*;
3) Donner les noms des clients qui ont réservés toutes les chambres de la catégorie
1 « catégorie des familles);
4) Donner les N° et Noms des clients ayant hébergé plus de 10 jours dans l’hôtel
« SOFITEL » de la ville Alger et ce depuis le 20/12/2006.
5) Supprimer toutes les réservations de la catégorie 3.

Exercice n° 03 : Soit la « Gestion de Bibliothèque » comprenant les relations suivantes :


ETUDIANT ( Num_E, Nom_E, Prenom_E, Adr_E, Date_Nais, Nationalite_E )
OUVRAGE ( Num_O, Titre, Nom_Aut, Nationalite_Aut )
EDITEUR (Num_Edit, Nom_Edit, Adr_Edit)
EMPRUNT (Num_E, Num_O, Num_Edit, Duree_Emprunt)
1) déterminer les clés primaires des relations ;
2) donner les noms et prénoms des étudiants n’ayant jamais fait d’emprunt de livre
« JAVA » ;
3) donner les numéros d’ouvrages dont l’auteur est « Jeorge Gardarin » et qui ne sont
pas empruntés par l’étudiant N°4 ;
4) donner le nom et prénom des étudiants qui empruntent tous les ouvrages ;
5) donner le nom des étudiants qui empruntent au moins un livre d’anglais ;
6) donner le nom des (étudiants et auteurs) de même nationalité.
Exercice n° 04 :
On considère la B.S « Gestion des Missions effectuées par une société » formées des
relations (tables) suivantes :
VEHICULES (IMM, NomV, Puis)
MISSION ( CodM, LibM)
EMPL(NE, NomE, CodS, Resp, Salaire, Ind) :Ind  Indemnité annuelle de
déplacement
SERVICE (CodS, LibS)
OM(CodM, IMM, NE, JD, HD, KMD, JA, HA, KMA)
Exprimer en S.Q.L les requêtes suivantes :
Q1) Donner les noms d’employés ayant effectués des missions au bord de véhicule
d’immatriculation ‘564EC15’
Q2) Donner les libellés des missions effectuées par l’employé ‘E1’
Q3) restituer le libellé des missions ayant sollicité l’utilisation de tous les véhicules de
services ?
Q4) Donner les NomsE, CodS des employés qui n’ont jamais participés à une mission.

Exercice n° 05 :
Une maison de commerce possède la Base de Données relative à ses activités, suivante :
EMPLOYE (Nomempl, dept, Salaire, age) ORG ( Nomempl, nomchef)
LOCAL (Dept, etage) VENTES (Dept, Article , Qte)
ACHAT (Fournisseur, Dept, Article , Qte) CLASSE(Article, Type)

La relation EMPLOYE donne pour chaque employé le salaire, l’age et le département où


il travaille. La relation ORG précise le chef de chaque employé. La relation ACHAT
précise la quantité de chaque article fourni au département par les fournisseurs. La relation
LOCAL donne la localisation de chaque département. La relation VENTES contient la
quantité de chaque article vendu par les départements.
Exprimer en SQL les requêtes suivantes :
Q1) donner les noms d’employés des départements ‘D2’ où l’article ‘A1’ à été vendu ?
Q2) donner la liste des employés de département ‘D5’ dont le salaire est > 20000 et dont le
chef est ‘E10’ ?
Q3) donner la liste des articles de type ‘T1’ non fournis au département ‘D1’ ?
Q4) donner la liste des employés les plus âgés du département ‘D7’

Vous aimerez peut-être aussi