12 Exercices Sur Les Requêtes SQL Corrigé: Opérateurs relationnels

La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec SQL. Nous espérons que ces exercices vous aideront à améliorer vos compétences en SQL. Les exercices corrigés suivantes sont actuellement disponibles, nous travaillons dur pour ajouter plus d’exercices. Bon apprentissage!

Vous pouvez lire notre tutoriel SQL avant de résoudre les exercices suivants.

 
 

Exercices Sur Les Requêtes SQL Corrigé : Opérateurs relationnels

1. À partir du table suivante, écrivez une requête SQL pour trouver les détails des clients dont l’age est supérieure à 50. Retournez l’identifiant du client, le nom du client, la ville, et l’age du client.

Table: clients

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1001   | Alex Barbara   | Paris       |  25    |
|    1002   | Lois Collins   | Lyon        |  30    |
|    1005   | Karen Farley   | Nice        |  44    |
|    1006   | Kevin Thompson | Paris       |  65    |
|    1007   | Scott Henry    | Marseille   |  32    |
|    1003   | Ellen McMullen | Montpellier |  53    |
+-----------+----------------+-------------+--------+
SELECT * FROM clients WHERE age > 50;

Sortie de la requête :

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1006   | Kevin Thompson | Paris       |  65    |
|    1003   | Ellen McMullen | Montpellier |  53    |
+-----------+----------------+-------------+--------+

 

2. A partir du table suivante, écrivez une requête SQL pour trouver tous les clients de la ville « Paris » qui ont un age supérieure à 50. Retournez l’identifiant du client, le nom du client, la ville, et l’age du client.

Table: clients

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1001   | Alex Barbara   | Paris       |  25    |
|    1002   | Lois Collins   | Lyon        |  30    |
|    1005   | Karen Farley   | Nice        |  44    |
|    1006   | Kevin Thompson | Paris       |  65    |
|    1007   | Scott Henry    | Marseille   |  32    |
|    1003   | Ellen McMullen | Montpellier |  53    |
+-----------+----------------+-------------+--------+
SELECT * 
FROM clients 
WHERE ville = 'Paris' AND age > 50;

Sortie de la requête :

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1006   | Kevin Thompson | Paris       |  65    |
+-----------+----------------+-------------+--------+

 

3. À partir du table suivante, écrivez une requête SQL pour trouver les clients qui sont de la ville de « Paris » ou qui ont un age supérieure à 50. Retournez l’identifiant du client, le nom du client, la ville, et l’age du client.

Table: clients

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1001   | Alex Barbara   | Paris       |  25    |
|    1002   | Lois Collins   | Lyon        |  30    |
|    1005   | Karen Farley   | Nice        |  44    |
|    1006   | Kevin Thompson | Paris       |  65    |
|    1007   | Scott Henry    | Marseille   |  32    |
|    1003   | Ellen McMullen | Montpellier |  53    |
+-----------+----------------+-------------+--------+
SELECT * 
FROM clients 
WHERE ville = 'Paris' OR age > 50;

Sortie de la requête :

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1001   | Alex Barbara   | Paris       |  25    |
|    1006   | Kevin Thompson | Paris       |  65    |
|    1003   | Ellen McMullen | Montpellier |  53    |
+-----------+----------------+-------------+--------+

 

 
 
4. A partir du table suivante, écrivez une requête SQL pour trouver les clients qui sont soit de la ville ‘Paris’ ou qui n’ont pas un age supérieure à 50. Retournez l’identifiant du client, le nom du client, la ville, et l’age du client.

Table: clients

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1001   | Alex Barbara   | Paris       |  25    |
|    1002   | Lois Collins   | Lyon        |  30    |
|    1005   | Karen Farley   | Nice        |  44    |
|    1006   | Kevin Thompson | Paris       |  65    |
|    1007   | Scott Henry    | Marseille   |  32    |
|    1003   | Ellen McMullen | Montpellier |  53    |
+-----------+----------------+-------------+--------+
SELECT * 
FROM clients 
WHERE ville = 'Paris' OR NOT age > 50;

Sortie de la requête :

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1001   | Alex Barbara   | Paris       |  25    |
|    1002   | Lois Collins   | Lyon        |  30    |
|    1005   | Karen Farley   | Nice        |  44    |
|    1006   | Kevin Thompson | Paris       |  65    |
|    1007   | Scott Henry    | Marseille   |  32    |
+-----------+----------------+-------------+--------+

 

5. À partir du table suivante, écrivez une requête SQL pour identifier les clients qui n’appartiennent pas à la ville de « Paris » ou qui ont un age supérieure à 50. Retournez l’identifiant du client, le nom du client, la ville, et l’age du client.

Table: clients

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1001   | Alex Barbara   | Paris       |  25    |
|    1002   | Lois Collins   | Lyon        |  30    |
|    1005   | Karen Farley   | Nice        |  44    |
|    1006   | Kevin Thompson | Paris       |  65    |
|    1007   | Scott Henry    | Marseille   |  32    |
|    1003   | Ellen McMullen | Montpellier |  53    |
+-----------+----------------+-------------+--------+
SELECT * 
FROM clients 
WHERE NOT (ville = 'Paris' OR age > 50);

Sortie de la requête :

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1002   | Lois Collins   | Lyon        |  30    |
|    1005   | Karen Farley   | Nice        |  44    |
|    1007   | Scott Henry    | Marseille   |  32    |
+-----------+----------------+-------------+--------+

 

6. A partir du table suivante, écrivez une requête SQL pour trouver les détails de toutes les commandes à l’exception de celles avec date_cmd égal à ‘2024-10-06’ et client_id supérieur à 1005 ou montant_achat supérieur à 100. Retournez cmd_id, montant_achat, date_cmd et client_id.

Table: commandes

+--------+----------------+-------------+-----------+
| cmd_id | montant_achat  |  date_cmd   | client_id |
+--------+----------------+-------------+-----------+
| 8001   | 125.02         | 2024-10-06  |  1005     |
| 8002   | 60.38          | 2024-10-06  |  1005     |
| 8003   | 95.65          | 2024-05-11  |  1002     |
| 8004   | 59.32          | 2024-12-22  |  1006     |
| 8005   | 74.33          | 2024-11-30  |  1006     |
| 8006   | 188.22         | 2024-01-05  |  1003     |
+--------+----------------+-------------+-----------+
SELECT *
FROM commandes
WHERE NOT ((date_cmd = '2024-10-06' AND client_id > 1005) OR montant_achat > 100.00);

Sortie de la requête :

+--------+----------------+-------------+-----------+
| cmd_id | montant_achat  |  date_cmd   | client_id |
+--------+----------------+-------------+-----------+
| 8002   | 60.38          | 2024-10-06  |  1005     |
| 8003   | 95.65          | 2024-05-11  |  1002     |
| 8004   | 59.32          | 2024-12-22  |  1006     |
| 8005   | 74.33          | 2024-11-30  |  1006     |
+--------+----------------+-------------+-----------+

 

 
 
7. À partir du table suivante, écrivez une requête SQL pour trouver les détails des clients dont l’age sont comprises entre 30 et 50. Retournez l’identifiant du client, son nom, sa ville et son age.

Table: clients

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1001   | Alex Barbara   | Paris       |  25    |
|    1002   | Lois Collins   | Lyon        |  30    |
|    1005   | Karen Farley   | Nice        |  44    |
|    1006   | Kevin Thompson | Paris       |  65    |
|    1007   | Scott Henry    | Marseille   |  32    |
|    1003   | Ellen McMullen | Montpellier |  53    |
+-----------+----------------+-------------+--------+
SELECT * 
FROM clients 
WHERE (age > 30 AND age < 50);

Sortie de la requête :

+-----------+----------------+-------------+--------+
| client_id |       nom      |    ville    |  age   |
+-----------+----------------+-------------+--------+
|    1005   | Karen Farley   | Nice        |  44    |
|    1007   | Scott Henry    | Marseille   |  32    |
+-----------+----------------+-------------+--------+

 

8. À partir du table suivante, écrivez une requête SQL pour trouver les détails de toutes les commandes avec un montant d'achat inférieur à 90 ou exclure les commandes avec une date de commande supérieure ou égale à '2024-10-06' et un identifiant de client inférieur à 8005. Retournez cmd_id, montant_achat, date_cmd et client_id.

Table: commandes

+--------+----------------+-------------+-----------+
| cmd_id | montant_achat  |  date_cmd   | client_id |
+--------+----------------+-------------+-----------+
| 8001   | 125.02         | 2024-10-06  |  1005     |
| 8002   | 60.38          | 2024-10-06  |  1005     |
| 8003   | 95.65          | 2024-05-11  |  1002     |
| 8004   | 59.32          | 2024-12-22  |  1006     |
| 8005   | 74.33          | 2024-11-30  |  1006     |
| 8006   | 188.22         | 2024-01-05  |  1003     |
+--------+----------------+-------------+-----------+
SELECT *
FROM commandes
WHERE (montant_achat < 90 OR NOT (date_cmd >= '2024-10-06' AND client_id < 8005));

Sortie de la requête :

+--------+----------------+-------------+-----------+
| cmd_id | montant_achat  |  date_cmd   | client_id |
+--------+----------------+-------------+-----------+
| 8002   | 60.38          | 2024-10-06  |  1005     |
| 8003   | 95.65          | 2024-05-11  |  1002     |
| 8004   | 59.32          | 2024-12-22  |  1006     |
| 8005   | 74.33          | 2024-11-30  |  1006     |
| 8006   | 188.22         | 2024-01-05  |  1003     |
+--------+----------------+-------------+-----------+

 

9. À partir du table suivante, écrivez une requête SQL pour trouver toutes les commandes qui remplissent les conditions suivantes. Excluez les combinaisons de date de commande égale à '2024-10-06' ou d'ID client supérieur à 1005 et dont le montant d'achat est inférieur à 100.

Table: commandes

+--------+----------------+-------------+-----------+
| cmd_id | montant_achat  |  date_cmd   | client_id |
+--------+----------------+-------------+-----------+
| 8001   | 125.02         | 2024-10-06  |  1005     |
| 8002   | 60.38          | 2024-10-06  |  1005     |
| 8003   | 95.65          | 2024-05-11  |  1002     |
| 8004   | 59.32          | 2024-12-22  |  1006     |
| 8005   | 74.33          | 2024-11-30  |  1006     |
| 8006   | 188.22         | 2024-01-05  |  1003     |
+--------+----------------+-------------+-----------+
SELECT *
FROM commandes
WHERE NOT ((date_cmd = '2024-10-06' OR client_id > 1005) AND montant_achat < 100);

Sortie de la requête :

+--------+----------------+-------------+-----------+
| cmd_id | montant_achat  |  date_cmd   | client_id |
+--------+----------------+-------------+-----------+
| 8001   | 125.02         | 2024-10-06  |  1005     |
| 8003   | 95.65          | 2024-05-11  |  1002     |
| 8006   | 188.22         | 2024-01-05  |  1003     |
+--------+----------------+-------------+-----------+

 

10. Écrivez une requête SQL qui affiche le numéro de commande, le montant de l'achat et le pourcentage atteint et non atteint (%) pour les commandes qui dépassent 50 % de la valeur théorique de 200.

Table: commandes

+--------+----------------+-------------+-----------+
| cmd_id | montant_achat  |  date_cmd   | client_id |
+--------+----------------+-------------+-----------+
| 8001   | 125.02         | 2024-10-06  |  1005     |
| 8002   | 60.38          | 2024-10-06  |  1005     |
| 8003   | 95.65          | 2024-05-11  |  1002     |
| 8004   | 59.32          | 2024-12-22  |  1006     |
| 8005   | 74.33          | 2024-11-30  |  1006     |
| 8006   | 188.22         | 2024-01-05  |  1003     |
+--------+----------------+-------------+-----------+
SELECT cmd_id, montant_achat,
       -- Calcule le pourcentage du montant atteint.
       (100 * montant_achat) / 200 AS "Atteint %",
       -- Calcule le pourcentage du montant non atteint.
       (100 * (6000 - montant_achat) / 200) AS "Non atteint %"
FROM commandes
-- Filtre les lignes pour n'inclure que celles où le pourcentage du montant atteint est supérieur à 50 %.
WHERE (100 * montant_achat) / 200 > 50;

 

 
 
11. A partir du table suivante, écrivez une requête SQL pour trouver les détails de tous les employés dont le nom de famille est 'Parker' ou 'Horn'. Retournez id, prenom, nom, et departement_id.

Table: employes

+------+---------+----------+----------------+
|  id  | prenom  |   nom    | departement_id |
+------+---------+----------+----------------+
| 1001 | Eddie   | Parker   |  8             |
| 1002 | Eleanor | Fawaz    |  8             |
| 1003 | Glen    | Parker   |  6             |
| 1004 | Ali     | Fawaz    |  2             |
| 1005 | Earl    | Horn     |  9             |
| 1006 | Bryan   | Savoy    |  3             |
+------+---------+----------+----------------+
SELECT *
FROM employes
WHERE nom = 'Parker' OR nom = 'Horn';

Sortie de la requête :

+------+---------+----------+----------------+
|  id  | prenom  |   nom    | departement_id |
+------+---------+----------+----------------+
| 1001 | Eddie   | Parker   |  8             |
| 1003 | Glen    | Parker   |  6             |
| 1005 | Earl    | Horn     |  9             |
+------+---------+----------+----------------+

 

12. A partir du table suivante, écrivez une requête SQL pour trouver les employés qui travaillent au département 6 ou 2. Retournez id, prenom, nom, et departement_id.

Table: employes

+------+---------+----------+----------------+
|  id  | prenom  |   nom    | departement_id |
+------+---------+----------+----------------+
| 1001 | Eddie   | Parker   |  8             |
| 1002 | Eleanor | Fawaz    |  8             |
| 1003 | Glen    | Parker   |  6             |
| 1004 | Ali     | Fawaz    |  2             |
| 1005 | Earl    | Horn     |  9             |
| 1006 | Bryan   | Savoy    |  3             |
+------+---------+----------+----------------+
SELECT *
FROM employes
WHERE departement_id = 6 OR departement_id = 2;

Sortie de la requête :

+------+---------+----------+----------------+
|  id  | prenom  |   nom    | departement_id |
+------+---------+----------+----------------+
| 1003 | Glen    | Parker   |  6             |
| 1004 | Ali     | Fawaz    |  2             |
+------+---------+----------+----------------+

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *