Tp4 BD (LMD) (Les requêtes de recherche)
(Manipulation d’une BD en mode commande (SQL))
1. Recherche de données : Requêtes :
La recherche en mode commande est effectuée grâce à la commande SELECT du langage SQL.
a- Projection : recherche de certaines colonnes dans une table ;
Syntaxe :
SELECT [DISTINCT] *|liste_champs
FROM table;
➢ Distinct : permet d’afficher un seul exemplaire des lignes identiques du résultat trouvé.
➢ *: désigne tous les champs de la table
➢ S’il y a plus qu’un champ à spécifier il faut les séparer par des virgules.
Exemples :
- Afficher la liste des clients :
SELECT *
FROM Client ;
- Afficher les références des différents produits
SELECT DISTINCT ref_produit
FROM details_commandes;
- Afficher les noms et les prénoms de tous les clients
SELECT Nom_Cli, Prenom_Cli
FROM client;
- Afficher les dates et les frais des locations sachant que le frais de location= Duree_Loc*Cout_Loc
SELECT date_loc, Duree_Loc*Cout_Loc 'Frais'
FROM Location;
b-Sélection : recherche de certaines lignes dans une table :
Syntaxe :
SELECT [DISTINCT] *|liste_champs
FROM table
WHERE condition;
On peut utiliser plusieurs opérateurs pour construire une condition ; <, >, <=, >=, <>, =
On peut combiner plusieurs conditions ; AND, OR et NOT.
Un texte est encadré par deux apostrophes (‘ ‘).
-1-
On peut utiliser aussi :
✓ BETWEEN : pour encadrer une valeur. Exemple: BETWEEN 100 AND 200
✓ IN : pour créer une liste. Exemple: IN (‘Paris’, ‘Montréal’, ‘London’)
✓ IS NULL : la valeur est nulle
✓ IS NOT NULL : la valeur n’est pas nulle
✓ LIKE : pour utiliser les caractères génériques Exemple : LIKE ‘_A%’
Exemples:
-Afficher les locations ayant une durée supérieure à 3 jours
SELECT *
FROM Location
WHERE Duree_Loc>= 3;
-Afficher les locations ayant un cout compris entre 110 et 200 dinars
SELECT * FROM Location
WHERE cout_loc BETWEEN 110 AND 200;
-Afficher les prénoms des clients dont leurs noms sont Ahmed, Mahmoud ou Mohamed
SELECT Prenom_Cli
FROM Client
WHERE Nom_cli IN (‘Ahmed’, ‘Mahmoud’, ‘Mohamed’);
-Afficher la liste des clients ayant une adresse nulle
SELECT * FROM Client
WHERE adr_Cli IS NULL;
-Afficher la liste des clients qui habitent dans une ville qui commence par “Menzel%”
SELECT *
FROM Client
WHERE Ville LIKE 'Menzel%';
• 'Menzel%' commence par Menzel
• '%Men%' contient le mot Men
• '_M%' dont le 2ème caractère est M
• Ville LIKE [B-D]% à On sélectionne les villes dont la première lettre du nom est entre le B et le D.
-2-
Prof : Zomiti Henda Classe : 3ème SI
Exercice 1 :
On travail avec la base de données « location de voiture »
1. Ecrire une requête SQL qui permet d’afficher la liste des clients
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
…………
2. Modifier cette requête en affichant uniquement leur nom prénom et adresse
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
…………
3. Ecrire une requête SQL qui permet d’afficher les clients habitant à tunis.
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
………………
4. Créer une requête qui permet d’afficher les véhicules ayant la marque « Peugeot »
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
………………
5. Modifier la dernière requête pour afficher les véhicules de marque « Peugeot » acquises en 2005
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
………………
6. Ecrire une requête SQL qui permet d’afficher les locations ayant une durée supérieure à 10 jours.
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
………………
7. Créer une requête qui permet d’afficher les locations ayant une durée de 6 ou 7 jours
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………
3
Prof : Zomiti Henda Classe : 3ème SI
Correction Exercice 1 :
1. Ecrire une requête SQL qui permet d’afficher la liste des clients
Select * from clients
2. Modifier cette requête en affichant uniquement leur nom prénom et adresse
Select nom_cli,prenom_cli,ville
from clients
3. Ecrire une requête SQL qui permet d’afficher les clients habitant à tunis.
Select * from clients
Where ville= “tunis “
4. Créer une requête qui permet d’afficher les véhicules ayant une marque « Peugeot »
Select * from véhicules
Where marque =” Peugeot “
5. Modifier la dernière requête pour afficher les véhicules de marque « Peugeot » acquises en 2005
Select * from véhicules
Where marque = “ Peugeot “ AND date_acq= 2005
6. Ecrire une requête SQL qui permet d’afficher les locations ayant une durée supérieure à 10 jours.
Select * from locations
Where duree_loc >10
7. Créer une requête qui permet d’afficher les locations ayant une durée de 6 ou 7 jours
Select * from locations
Where duree_loc =6 Or duree_loc =7