IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Jointures et dialectes SQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    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).

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut
    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 ...

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    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
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut
    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.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    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) !

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    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..)

  8. #8
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 : 16 818
    Billets dans le blog
    14
    Par défaut
    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 Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    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 ....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jointure linq to sql
    Par annesolac dans le forum Linq
    Réponses: 0
    Dernier message: 22/05/2009, 10h22
  2. jointure naturelle en sql
    Par vbnetnet dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/05/2009, 17h08
  3. [Access] Jointure et remplacement sql
    Par matel dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/09/2008, 18h30
  4. Auto jointure : 1 seul SQL possible?
    Par patozore dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/02/2008, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo