Vous êtes sur la page 1sur 5

Table des matires

JOINTURE DES TABLES ......................................................................................... 2


1.1 Les jointures internes ........................................................................................... 2
1.2 Les jointures externes ........................................................................................... 3
1.2.1 Jointure externe gauche................................................................................. 4
1.2.2
Jointure externe droite................................................................................... 4
1.2.3
Jointure externe complte ............................................................................. 5
1.2.4
Jointure croise ............................................................................................. 5

_____________________________________________________________________
2011 Hakim Benameurlaine
1

JOINTURE DES TABLES


Pour retourner des donnes provenant de deux ou plusieurs tables, vous
devez utiliser une jointure entre ces tables.
Une jointure se base sur les relations entre les tables pour slectionner les
lignes.
Il existe deux catgories de jointures :

1.1

les jointures internes : elles retournent les lignes uniquement quand les
deux tables respectent les conditions de la jointure ;
les jointures externes : elles retournent toutes les lignes dau moins une
des deux tables.

Les jointures internes


Elles sont spcifies dans la clause FROM. Dans une jointure interne, les
valeurs des colonnes jointes sont compares laide dun oprateur de
comparaison, qui est gnralement loprateur dgalit = . Une jointure
interne est introduite par le mot-cl
INNER JOIN
La syntaxe est la suivante :
FROM TABLEA [INNER] JOIN TABLEB ON CONDITION
USE Formation
GO
CREATE TABLE Dept
(
No_dept int,
Nom_dept varchar(20)
)
GO
CREATE TABLE Emp
(
No_emp int,
Nom_emp varchar(20),
No_dept int
)
GO
INSERT INTO Dept VALUES(1,'Finance')

_____________________________________________________________________
2011 Hakim Benameurlaine
2

INSERT INTO Dept VALUES(2,'Ventes')


INSERT INTO Dept VALUES(3,'RH')
INSERT INTO Emp VALUES(100,'Tremblay',1)
INSERT INTO Emp VALUES(101,'Dagenais',2)
INSERT INTO Emp VALUES(102,'Poulin',NULL)
-- INNER JOIN
SELECT d.Nom_dept, e.Nom_emp
FROM Dept d INNER JOIN Emp e
ON d.No_dept=e.No_dept

Lusage des alias est fortement recommand avec les jointures.


Cela permet de rduire le code et de le rendre plus lisible. Dans le cas o
les tables jointes possdent des noms de colonnes identiques, cette
recommandation devient une obligation.
REMARQUE
Une jointure interne peut tre crite en utilisant la clause WHERE.
Ce type de code devra nanmoins tre proscrit cause de lexcs de
travail quil gnre pour sexcuter.
SELECT d.Nom_dept, e.Nom_emp
FROM Dept d, Emp e
WHERE d.No_dept=e.No_dept
1.2

Les jointures externes


Les jointures externes renvoient toutes les lignes dau moins une des tables
mentionnes dans la clause FROM et renvoient les lignes de lautre table
qui rpondent la condition mentionne par la clause ON.
La syntaxe est la suivante :
FROM TABLEA {LEFT|RIGHT|FULL} [OUTER] JOIN TABLEB
On distingue les trois types de jointure externe suivants:

_____________________________________________________________________
2011 Hakim Benameurlaine
3

1.2.1 Jointure externe gauche


Introduite par la clause LEFT OUTER JOIN. Elle retourne toutes les lignes
qui respectent la condition ainsi que toutes les lignes de la table gauche
du JOIN qui ne respectent pas la condition ;
--LEFT OUTER JOIN
SELECT d.Nom_dept, e.Nom_emp
FROM Dept d LEFT OUTER JOIN Emp e
ON d.No_dept=e.No_dept

1.2.2 Jointure externe droite


Introduite par la clause RIGHT
OUTER JOIN. Elle retourne toutes les lignes qui respectent la condition
ainsi que toutes les lignes de la table droite du JOIN qui ne respectent
pas la condition ;
--RIGHT OUTER JOIN
SELECT d.Nom_dept, e.Nom_emp
FROM Dept d RIGHT OUTER JOIN Emp e
ON d.No_dept=e.No_dept

_____________________________________________________________________
2011 Hakim Benameurlaine
4

1.2.3 Jointure externe complte


Introduite par la clause FULL OUTER JOIN. Elle retourne toutes les lignes
qui respectent la condition ainsi que toutes les lignes des deux tables qui
ne respectent pas la condition.
--FULL OUTER JOIN
SELECT d.Nom_dept, e.Nom_emp
FROM Dept d FULL OUTER JOIN Emp e
ON d.No_dept=e.No_dept

1.2.4 Jointure croise


Une jointure croise est un cas spcial de jointure qui permet d'obtenir le
produit cartsien des tables impliques dans la jointure.
Elle est introduite par la clause CROSS JOIN.
--CROSS JOIN
SELECT d.Nom_dept, e.Nom_emp
FROM Dept d CROSS JOIN Emp e

_____________________________________________________________________
2011 Hakim Benameurlaine
5

Vous aimerez peut-être aussi