Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/10/2011, 11h44   #1
Candidat au titre de Membre du Club
 
Homme Boris
Étudiant
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Boris
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 14
Points : 14
Par défaut Jointures et dialectes SQL

Bonjour.

J'ai pour habitudes d'utiliser les JOIN pour faire des jointures en SQL (j'utilise MySQL). En cours nous voyons actuellement le SQL et nous faisons les jointures sans le JOIN :

Code :
1
2
3
SELECT colonne1, colonne2
FROM table1, table2 
WHERE table1.colonneTab1 = table2.colonneTab2
J'ai demandé au prof et il me dit que cette dernière syntaxe est comprise par tous les dialectes contrairement à celle utilisant le JOIN.

Je me suis renseigné sur quelques SGBD et j'ai vu que MySQL, PostgreSQL, Oracle, au moins, utilisaient aussi le JOIN.

Je voulais donc savoir si des SGBD ne comprenaient pas la syntaxe du JOIN ?

Merci pour votre réponse.

Bonne journée,
Oneill.
Oneill887 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 12h03   #2
Expert Confirmé Sénior
 
Homme François
Chef de projet NTIC
Inscription : janvier 2007
Messages : 5 352
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC

Informations forums :
Inscription : janvier 2007
Messages : 5 352
Points : 9 745
Points : 9 745
Bonjour.

Ce que votre prof vous montre est une syntaxe SQL 86. (qui a donc 25 ans !)
Actuellement tous les SGBD supportent la syntaxe SQL 92 (avec le mot clef JOIN).
__________________

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


Une réponse vous a aidé ? utiliser le bouton

"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Bluedeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 13h23   #3
Candidat au titre de Membre du Club
 
Homme Boris
Étudiant
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Boris
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 14
Points : 14
Merci pour ta réponse Bluedeep.

À partir de là je me demande s'il y a des avantages à utiliser l'ancienne syntaxe ? Je me dis que si c'est cette syntaxe que j'apprends en cours il y a une raison ...
Oneill887 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 13h40   #4
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 547
Points : 7 547
Ce n'est pas parce qu'une syntaxe est comprise par une nouvelle version SGBD que les programmes anciens auront été mis à jour .
Il est donc utile de connaître cette syntaxe obsolète pour comprendre des requêtes que tu seras peut-être amené un jour à faire évoluer.
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 13h43   #5
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 644
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 644
Points : 2 641
Points : 2 641
La raison doit surement être que ce prof est déconnecté de ce qui se passe aujourd'hui sur les SGBD.
Sinon il n'a peut être tout simplement pas envi de mettre à jour ses cours.


Je ne vois pas d'avantage à l'ancienne syntaxe en fait, vu qu'elle est illisible et peut être source d'erreur (oubli d'une jointure..)
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/10/2011, 13h45   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par Oneill887 Voir le message
Merci pour ta réponse Bluedeep.

À partir de là je me demande s'il y a des avantages à utiliser l'ancienne syntaxe ? Je me dis que si c'est cette syntaxe que j'apprends en cours il y a une raison ...
C'est juste ton prof qui retarde de presque 20 ans !

Il n'y a théoriquement aucune différence de traitement ou de performances entre les deux syntaxes mais la nouvelles syntaxe avec JOIN a le mérite d'être plus claire en séparant les conditions de jointure des conditions de restriction et évite des erreurs comme l'oubli d'une condition de jointure ou d'une instance de table. Je ne compte plus le nombre de requêtes problématiques postées dans nos forums et que j'ai corrigées rien qu'en les récrivant avec la bonne syntaxe de jointure avec JOIN.

Le défaut qu'ont les profs est qu'ils croient que c'est plus simple de comprendre les jointures en commençant avec l'ancienne syntaxe alors que c'est faux.

Si j'étais prof de SQL, je commencerais par la syntaxe moderne avec JOIN puis je mentionnerais le fait que de vieux programmes peuvent encore comporter l'ancienne syntaxe donc qu'il vaut mieux aussi la connaître mais préférer la moderne.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 24/10/2011, 14h23   #7
Expert Confirmé Sénior
 
Homme François
Chef de projet NTIC
Inscription : janvier 2007
Messages : 5 352
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC

Informations forums :
Inscription : janvier 2007
Messages : 5 352
Points : 9 745
Points : 9 745
Citation:
Envoyé par CinePhil Voir le message
Si j'étais prof de SQL, je commencerais par la syntaxe moderne avec JOIN puis je mentionnerais le fait que de vieux programmes peuvent encore comporter l'ancienne syntaxe donc qu'il vaut mieux aussi la connaître mais préférer la moderne.
J'avoue humblement que je ne connaissais pas l'ancienne syntaxe jusquà ... assez récemment.

Je l'ai apprise par hasard en tombant sur un script PL/SQL exhumé d'une application antique, pour lequel un développeur me demandait assistance (le script faisait 4000 lignes et était assez "velu") et j'ai du aller interroger d'autres développeurs de l'époque pour comprendre ce que faisait ce "(+)" dans la condition de jointure. (syntaxe spécifique oracle étendant l'ancienne syntaxe SQL 86 puor gérer les OUTER JOIN).
Pourtant, je ne suis pas exactement un perdreau de l'année ....
__________________

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


Une réponse vous a aidé ? utiliser le bouton

"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Bluedeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 17h09   #8
Candidat au titre de Membre du Club
 
Homme Boris
Étudiant
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Boris
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 14
Points : 14
Citation:
Envoyé par al1_24 Voir le message
Ce n'est pas parce qu'une syntaxe est comprise par une nouvelle version SGBD que les programmes anciens auront été mis à jour .
Il est donc utile de connaître cette syntaxe obsolète pour comprendre des requêtes que tu seras peut-être amené un jour à faire évoluer.
Je pense que tu as raison, il faut voir l'ancienne syntaxe. Mais la nouvelle aussi ! De ce que j'ai pu comprendre nous ne verrons que l'ancienne.

Ce qui m'embête encore plus, c'est l'excuse "elle n'est pas gérée par tous les SGBD".

M'enfin, au moins je suis fixé. :p

Merci à vous tous.
Oneill887 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 17h37   #9
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 431
Points : 10 431
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Lorsque votre professeur abordera les jointures externes avec un (+) vous lui rétorquerez que ce n'est pas géré par tous les SGBD (seuls Oracle et DB2 à ma connaissance).

Lorsqu'il vous dira qu'elle fonctionne sur votre Oracle 8 installé vous lui direz qu'on est à la version 11.2 (et qu'on a passé l'an 2000 aussi) !
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h50.


 
 
 
 
Partenaires

Hébergement Web