• Aucun résultat trouvé

Bases de Données – FICHE 07 L’ordre SQL SELECT Jointures externes

N/A
N/A
Protected

Academic year: 2022

Partager "Bases de Données – FICHE 07 L’ordre SQL SELECT Jointures externes"

Copied!
1
0
0

Texte intégral

(1)

Bases de Données – FICHE 07 L’ordre SQL SELECT Jointures externes

Jointures internes et externes

Les jointures permettent de rassembler les colonnes de plusieurs tables grâce à des critères de jointures :

la jointure interne rassemble seulement les colonnes des lignes qui peuvent être jointes (les autres lignes sont éliminées du résultat)

la jointure externe permet, quant à elle, de conserver en plus les colonnes des lignes qui n’ont pu être jointes

Exemple de tables :

Client Facture

+---+---+

| idCli | nomCli | +---+---+

| 1 | A |

| 2 | B |

| 3 | C |

| 4 | D | +---+---+

+---+---+---+

| idFact | montant | idCli | +---+---+---+

| 1 | 100.00 | 1 |

| 2 | 150.00 | 1 |

| 3 | 50.00 | 3 | +---+---+---+

Jointure interne Jointure externe (gauche)

SELECT Client.idCli, nomCli, SUM(montant) AS CA FROM Client

INNER JOIN Facture ON (Client.idCLi = Facture.idCli) ..GROUP BY idCLi, nomCLi;

SELECT Client.idCli, nomCli, SUM(montant) AS CA FROM Client

LEFT OUTER JOIN Facture ON (Client.idCLi = Facture.idCli) GROUP BY idCLi, nomCLi;

SELECT idCli, nomCli, SUM(montant) AS CA FROM Client

INNER JOIN Facture USING (idCLi) ..GROUP BY idCLi, nomCLi;

SELECT idCli, nomCli, SUM(montant) AS CA FROM Client

LEFT OUTER JOIN Facture USING idCLi

GROUP BY idCLi, nomCLi;

Liste le chiffre d’affaires des clients qui ont eu des factures.

Les clients qui n’ont pas eu de factures sont éliminés du résultat final.

Liste le chiffre d’affaires des clients qui ont eu des factures ; les clients (table à gauche de la jointure) qui n’ont pas eu de factures seront aussi dans le résultat avec un CA à la valeur nulle

Jointure externe gauche (LEFT OUTER JOIN) signifie que les colonnes des lignes de la table de gauche (Client, ici) sont conservées même si la ligne n’a pu être jointe.

+---+---+---+

| idCli | nomCli | CA | +---+---+---+

| 1 | A | 250.00 |

| 3 | C | 50.00 | +---+---+---+

+---+---+---+

| idCli | nomCli | CA | +---+---+---+

| 1 | A | 250.00 |

| 2 | B | NULL |

| 3 | C | 50.00 |

| 4 | D | NULL | +---+---+---+

[Texte] Page 1

Références

Documents relatifs

– si un même type d’entité intervient plusieurs fois dans un même type d’association, on doit explicitement indiquer le rôle de chaque entité – si on a

NumEtud Nom Prenom Adresse DateNais Sexe NumCours NomCours NomProf NbHC NbHTD NbHTP NumEtud NumCours Note. E1

LE PRODUIT CARTESIEN (ou jointure croisée) ASSOCIE CHACUNE DES LIGNES D’UNE TABLE AVEC TOUTES LES LIGNES D’UNE AUTRE TABLE IL CONSERVE TOUTES LES LIGNES DE TOUTES LES

 les ordres permettant la modification du contenu des tables : ajouter des lignes de données, modifier des valeurs de colonnes, supprimer des lignes de données (DML, Data

• les ordres permettant la modification du contenu des tables : ajouter des lignes de données, modifier des valeurs de colonnes, supprimer des lignes de données (DML, Data

4 bradford jean Requete : lister les numero, nom et prénom de personnel si la ville n’est pas Arras ou Pau SELECT numero,nom, prenom.

La clause WHERE de l’ordre SELECT définit le critère de choix des lignes à conserver dans le résultat final : c’est l’équivalent de l’opération

Requete1 : lister le nombre de lignes dans la table des personnels par ville pour le salaire supérieur ou égal à 1300 SELECT ville, COUNT(*).