SQL - Affichage




  1. Exemples de requêtes



  1. 1. Exemples divers

Divers exemples sont donnés au cours des pages sur le SQL et sur les bases de données. Je vous laisse vous promener pour les trouver.



  1. 2. Liste de valeurs même si NULL : Jointure Externe



  1.2.1. Exemple de code

En reprenant l'exemple précédent (tables Disque et Pays), imaginons que pour certains Disque, le code du pays n'a pas été précisé. Maintenant, on souhaite lister tous les disques avec le nom du pays s'il existe.
Si on utilise la requête suivante :
SELECT * FROM Disque, Pays WHERE IdPays=pId;
le problème est que cette requête ne va afficher que les disques pour lesquels le pays a été saisie.

Donc, pour résoudre ce problème, il est nécessaire d'utiliser les jointures externes.
Voici un exemple de jointure externe à utiliser :
SELECT * FROM Disque LEFT OUTER JOIN Pays ON IdPays=pId;
Ainsi, en utilisant cette jointure, on précise que la table Disque et la table Pays sont liées par le champs IdPays.
La commande "LEFT OUTER JOIN" permet de définir que la jointure est vers la droite c'est à dire de "Disque" vers "Pays", ce qui explique que si la valeur de pId n'a pas été fixée, la valeur renvoyée sera NULL et pas une valeur de la table "Pays".

Et voilà !


  1.2.2. Exemple de contenu des tables et du résultat de la requête

Disque : SELECT * FROM Disque;
+----+-----------+---------------------------+-------+
|Id  |Nom_Disque |Commentaires               |IdPays |
+----+-----------+---------------------------+-------+
| 1  |Disk1      |Très bon disque de test    | 1     |
| 2  |Disk2      |Deuxième disque            | 1     |
| 3  |Disk3      |La, c'est pour le test     | 3     |
| 4  |Disk4      |Dernier Element            | NULL  |
+----+-----------+---------------------------+-------+
Pays : SELECT * FROM pays;
+----+--------------+
|Id  |NPays         |
+----+--------------+
| 1  | Francais     |
| 2  | Anglophone   |
| 3  | Japonais     |
+----+--------------+
Requête standard : SELECT * FROM Disque, Pays WHERE IdPays=pId;
+----+-----------+-------------------------+-------+----+-----------+
|Id  |Nom_Disque |Commentaires             |IdPays |Id  |NPays      |
+----+-----------+-------------------------+-------+----+-----------+
| 1  |Disk1      |Très bon disque de test  | 1     | 1  | Francais  |
| 2  |Disk2      |Deuxième disque          | 1     | 1  | Francais  |
| 3  |Disk3      |La, c'est pour le test   | 3     | 3  | Japonais  |
+----+-----------+-------------------------+-------+----+-----------+
Requête avec Jointure Externe : SELECT * FROM Disque LEFT OUTER JOIN Pays ON IdPays=pId;
+----+-----------+-------------------------+-------+----+-----------+
|Id  |Nom_Disque |Commentaires             |IdPays |Id  |NPays      |
+----+-----------+-------------------------+-------+----+-----------+
| 1  |Disk1      |Très bon disque de test  | 1     | 1  | Francais  |
| 2  |Disk2      |Deuxième disque          | 1     | 1  | Francais  |
| 3  |Disk3      |La, c'est pour le test   | 3     | 3  | Japonais  |
| 4  |Disk4      |Dernier Element          | NULL  |NULL| NULL      |
+----+-----------+-------------------------+-------+----+-----------+





Page modifiée le : 01/10/2024


Valid XHTML 1.0 Transitional