SQL : Renommer une table & Notion de jointure



On peut renommer une table et la donner une abviation, l’intérêt c’est davoir un nom plus court et clair
pour l’utiliser dans les jointures par exemple

Syntaxe : Select champ1, champ2
From table nouveau_nom

Exemple 1 : Changer le nom de la table ouvrier en Ovr

Select  num, salaire
From Ouvrier Ovr
Pratique : Afficher toute les champs de la table Ouvrier et téléphone de chaque fournisseur associé. Ouvrier (num, salaire, remise, numf)      num = nuro client
Fournisseur (numf, tel)                            numf = numéro fournisseur

Select Ovr.*, tel
From Ouvrier Ovr, Fournisseur Four
Where Ovr.num=Four.numf

Remarques 1 : On observe que les informations demandés dans l’exercice existe dans deux tables difrentes, alors on doit créer des relations entre toutes les tables quon va utiliser pour extraire des données en cherchant les champs partagés qui existent dans les tables, cette relation appelée jointure a de la propriété, et elle doit être déclarée en premier aps la clause Where (dans notre cas : « Where Ovr.num=Four.numf ») , aps on ajoute d’autres conditions s’il y en a)

Remarque 2 : Ovr.* est une écriture qui existe en SQL qui affiche tous les champs de la table avant le point (Ovr.* dans cette exemple SQL va afficher tous les champs de la table ouvrier, il est utile à l’utiliser a la place d’écrire tous les champs de la table client et perdre le temps.

On peut aussi écrire Ovrier.* mais dans le cas de mettre une abréviation Ovr, comme dans cet exercice SQL
ne va pas la reconnaitre car son nom est chan en Ovr.

On peut extraire la gle suivante : TableX.* = Tous les champs de la TableX



Remarque 3 : Dans la jointure qu’on a fait « Where Ovr.num=Four.numf » On observe que les champs partagés (num et numf ne sont pas identiques au niveau d’écriture, même sils ont des valeurs identiques, chacune à sa propre écriture) dans ce cas on na pas besoin d’écrire le nom de la table avant le point (Ovr.num), car on fait ça seulement pour éviter la confusion entre des champs qui appartiennent à des tables difrents et qui s’écrit de la même manière.

On peut bien écrire dans ce cas tout simplement

Select Ovr.*, tel
From client Ovr, Fournisseur Four
Where num= numf

Imaginons que le champ numf dans la table fournisseur a la même écriture que celui du table client num, dans cas il est  obligatoire décrire le champ sous forme détaillée « nomtable.champ » pour que SQL reconnaitre les deux champs el les distingue dans notre cas « Ovr.num=Four.num » alors la syntaxe final :


Select Ovr.*, tel
From client Ovr, Fournisseur Four
Where Ovr.num=Four.num

Aucun commentaire:

Enregistrer un commentaire