HOBBES World.com

Bases de Données
Présentation
MySQL
PSQL
Oracle

SQL
Structure
Enregistrements
Affichage
Exemples
SQL - Calcul
SQL - Exercice

Menu Général
Informatique
Programmation
Loisirs
Outils
Divers
Accueil

Log In


Login à vie

Créer un compte
Mot de passe

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      |
+----+-----------+-------------------------+-------+----+-----------+




  » Commentaires

Aucun commentaire pour cette page.

Si vous souhaitez ajouter un commentaire, vous devez être identifié


 Page modifiée le : 13/11/2002
Site modifié le : 02/04/2008
  Flux RSS : cliquez-ici si vous voulez suivre les évolutions
Contacter le webmaster : si vous trouvez qu'il manque des infos, n'hésitez pas à me le dire !
© HobbesWorld - /db/requetes_exemples.php