Vous êtes sur la page 1sur 4

EXERCICE D’APPLICATION

Soit la base de données relative à l’exploitation des chambres d’un hôtel défini comme suit :
CHAMBRE (Num_Chambre, Prix, Nbr_Lit, Nbr_Pers, Confort, Equ)
CLIENT (Num_Client, Nom, Prénom, Adresse)
RESERVATION (#Num_Client, #Num_Chambre, Date_Arr, Date_Dep)
Exprimons les requêtes suivantes en SQL :
1. Liste de toutes les chambres

SELECT *
FROM Chambre;
2. Les numéros des chambres avec TV

SELECT Num_Chambre
FROM Chambre
WHERE Confort = ′TV′;
3. Les numéros des chambres et leurs capacités

SELECT Num_Chambre, Nbr_Pers


FROM Chambre;
4. La capacité théorique d’accueil de l’hôtel

SELECT SUM(Nbr_Pers)
FROM CHAMBRE;
5. Le prix par personne des chambres avec TV.

SELECT Prix / Nbr_Pers, Num_Chambre


FROM CHAMBRE
WHERE Equ=′TV′;
6. Les numéros des chambres et le numéro des clients ayant réservé des chambres pour le 25/12/2021.

SELECT Num_Chambre, Num_Client


FROM RESERVATION
WHERE Date_Arr <= ′25/12/2021′
AND (Date_Dep>′25/12/2021′ OR Date_Dep is Null) ;
7. Les numéros des chambres coutant au maximum 80.000 Fou ayant un bain et valant au maximum 120.000 F.

SELECT Num_Chambre
FROM CHAMBRE
WHERE Prix<=80000 OR (Confort=’bain’ AND Prix<=’120000’) ;
8. Les noms, prénoms et adresse des clients dont les noms commencent par « AR ».

SELECT Nom, Prenom, Adresse


FROM CLIENT
WHERE No LIKE ‘RA%’ ;
9. Le nombre de chambre dont le prix est entre 85000 et 120000

SELECT COUNT(Num_Chambre)
FROM CHAMBRE
WHERE Prix BETWEEN 85000 AND 120000;
10. Les noms des clients n’ayant pas fixé la date de départ

SELECT C.Nom
FROM RESERVATION R, Client C
WHERE Date_Dep is Null AND R.Num_client = C.Num_Client ;

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 30 | 91


Leçon 8
LES OPERATEURS LOGIQUES ET DE COMPARAISON
Objectif
Au terme de cette leçon, l’élève doit être capable d’utiliser les opérateurs logiques (AND, OR,
NOT), de comparaison (<, >, <=, >=, =, <>), LIKE, BETWEEN, IN, NOT IN.

Introduction
Le langage SQL comme tout autre langage, nécessite divers opérateurs dans le but d'effectuer des
manipulations sur des valeurs numériques, littérales ou encore logiques.

1. Les opérateurs de comparaison


Les opérateurs de comparaison permettent une mise en correspondance de deux expressions
retournant une valeur booléenne True ou False.

Opérateurs Description
= Vérifie l’égalité entre deux expressions
!= , <>, ^= Vérifie la différence entre deux expressions
> Vérifie si la première expression est supérieure à la seconde
>= vérifie si la première expression est supérieure ou égale à la seconde
!> Vérifie si la première expression n’est pas supérieure à la seconde
< Vérifie si la première expression est inférieure à la seconde
<= vérifie si la première expression est inférieure ou égale à la seconde
!< vérifie si la première expression n’est pas inférieure à la seconde

2. Les opérateurs logiques


Ils permettent d’effectuer des comparaisons sur des expressions SQL.
Ce sont : AND, OR et NOT.
Les tableaux ci-après donnent les tables de vérité permettant de calculer les valeurs de vérité
d'une condition de sélection.
( )
0 1 0 0 0 0 0 0
1 0 0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1

3. L’opérateur « IN »

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 31 | 91


L'opérateur IN permet de rechercher si une valeur se trouve dans un ensemble donné, quel que
soit le type des valeurs de référence spécifiées (alpha, numérique, date…). Bien entendu, il est
possible d’inverser le fonctionnement de l’opérateur IN en lui adjoignant l’opérateur NOT (NOT
IN).
EXEMPLE
La requête suivante recherche tous les clients de sexe féminin, basée sur le code titre.
SELECT CODE, NOM, PRENOM
FROM T_CLIENT
WHERE CODE IN ('Mme.', 'Melle.')

Le contenu de la parenthèse peut être remplacé par le résultat d'une requête possédant une colonne
unique. Dans ce cas on parle de requêtes imbriquées, comme l’illustre l’exemple suivant :

EXEMPLE
La requête suivante recherche les codes, noms et prénoms clients de sexe féminin, basée sur le
code titre.
SELECT CODE, NOM, PRENOM
FROM T_CLIENT
WHERE CODE IN (SELECT sexe FROM Personne);

4. L’opérateur « BETWEEN »
L'opérateur BETWEEN permet de rechercher si une valeur se trouve dans un intervalle donné,
quel que soit le type des valeurs de référence spécifiées (alpha, numérique, date...).

EXEMPLE
La requête suivante recherche les codes, noms et prénoms clients dont le nom commence par
A, B C ou D, basée sur le code titre.
SELECT CODE, NOM, PRENOM
FROM T_CLIENT
WHERE NOM BETWEEN ′A′ AND ‘E’ ;

NB : les opérateurs IN et BETWEEN sont très pratiques dans le cas où l’on désire effectuer des
requêtes où l’utilisateur peut saisir une liste de choix multiples (IN) ou une plage de valeur
(BETWEEN).

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 32 | 91


5. L’opérateur « LIKE »
L'opérateur LIKE permet d’effectuer une comparaison partielle. Il est surtout employé avec les

colonnes contenant des données de type texte.

Il utilise les jokers % et _ (‘pour cent’ et ‘blanc souligné’).

 Le joker % remplace n'importe quelle chaîne de caractères, y compris la chaîne vide.

 Le blanc souligné _ remplace un et un seul caractère.

EXEMPLE
La requête suivante recherche les clients dont les noms commencent par B.
SELECT NOM, PRENOM
FROM T_CLIENT
WHERE NOM LIKE ′B%′;

NB : l’opérateur LIKE effectue une recherche en tenant compte de la différence entre lettres
majuscules et minuscules. Si vous voulez effectuer une recherche en ne tenant aucunement compte
de la différence entre majuscules et minuscules, il convient d’utiliser les opérateurs LOWER et
UPPER.

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 33 | 91

Vous aimerez peut-être aussi