bonjour tt le monde,
j'ai une question bête mais comme même je veux la poser.
est ce qu'on peut faire des jointures entre des tables sans avoir la contrainte des clés étranères.?
merci








bonjour tt le monde,
j'ai une question bête mais comme même je veux la poser.
est ce qu'on peut faire des jointures entre des tables sans avoir la contrainte des clés étranères.?
merci
Oui, fort heureusement !
La cle etrangere permet juste de lier des tables. Elle indique juste au systeme que le contenu d'une colonne ''provient'' en fait d'une autre table.
Tu peux meme faire des jointures entre deux colonnes de nom differents. Si je ne m'abuse, la seule condition pour les jointures c'est que le type de donnees des deux colonnes doit etre identique.
Une jointure entre 2 tables implique de préférence un index sur la clef de jointure, autrement on a droit à un full table scan dans tous les cas.
.
les clés étrangères décrivent une relation de dépendance entre deux tables (jointure naturelle), mais on peut trouver des relations "logique" entre deux tables à l'aide d'autres champs : le client et le commercial qui habitent la même région ou (euh) avec des noms qui commencent par la même lettre, on appellera cela des theta-jointures
on pourra joindre selon un critère d'égalité (équi-jointure) comme avec n'importe quelle opération logique (<,>,<= ... Non équi-jointure )
on pourra même imaginer faire des calculs, conversions sur le (ou les) champs d'une table puis comparer au champs d'une deuxième table pour construire cette jointure
oui les colonne peuvent avoir des noms différents mais peuvent également NE pas avoir le même type si on fait des conversions dans la comparaison ou bien des calculs.
par contre je soutien star: "sans exploitation des index on a droit à un full table scan dans tous les cas"
Partager