|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Boris Étudiant Inscription : juin 2011 Messages : 13 ![]() |
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 :
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. |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() François Chef de projet NTIC Inscription : janvier 2007 Messages : 5 352 ![]() |
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 |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Boris Étudiant Inscription : juin 2011 Messages : 13 ![]() |
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 ... |
|
|
00
|
|
|
#4 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 446 ![]() |
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 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 ![]() |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 644 ![]() |
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..) |
|
|
10
|
|
|
#6 | |
![]() ![]() |
Citation:
![]() 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 ! |
|
|
20
|
|
|
#7 | |
|
Expert Confirmé Sénior
![]() François Chef de projet NTIC Inscription : janvier 2007 Messages : 5 352 ![]() |
Citation:
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 |
|
|
|
00
|
|
|
#8 | |
|
Candidat au titre de Membre du Club
![]() Boris Étudiant Inscription : juin 2011 Messages : 13 ![]() |
Citation:
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. |
|
|
|
00
|
|
|
#9 |
![]() ![]() |
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 |
|
10
|
Copyright © 2000-2012 - www.developpez.com