8
votes

Est-ce toujours une bonne pratique d'utiliser des alias dans des jointures SQL ou des requêtes imbriquées?

est-il toujours une meilleure pratique à utiliser - xxx

au lieu de - xxx

autre que lisibilité et Réduire la longueur de la requête Quels sont les avantages d'utiliser des alias? Quand j'ai consulté notre expert en base de données, il dit Query peut casser s'il y a aucun alias parfois ... que je ne comprends pas complètement ... j'apprécierais si quelqu'un voudrait Partagez leurs pensées et quelles sont les meilleures pratiques à suivre ... Merci beaucoup.


0 commentaires

6 Réponses :


5
votes

Lorsque vous faites référence à deux fois le même tableau, vous devez utiliser un alias.

Autre que cela, il n'y a aucune raison technique que je peux penser.


0 commentaires

1
votes

La manière la plus lisible consiste à être explicite avec un nom pleinement qualifié; Sur cette expert de votre dB et je suis d'accord.

Mais quand vous les développez ... Les alias sont votre ami, la main vers le bas.


0 commentaires

0
votes
  1. augmente la lisibilité
  2. fournit un moyen de rejoindre la même table sur différentes conditions de jointure

0 commentaires

4
votes

Je le fais presque toujours parce que je déteste taper le nom de la table complète, et si vous ne le faites pas, vous pouvez vous retrouver avec des noms de colonne ambigu. Il suffit d'utiliser des alias sans signification tels que T1, T2, etc.


0 commentaires

17
votes
  1. Vous êtes probablement déroutant "besoin d'utiliser un préfixe de table" et "besoin d'utiliser un alias" lorsque vous faisant référence à une rupture des choses.

    La requête pourrait en effet être plus susceptible de se casser après avoir ajouté une jointure si vous n'utilisez pas de préfixe de table; Lorsque votre table d'origine et une table nouvellement ajoutée partagent une colonne avec le même nom. Donc, pour des raisons d'entretien futur, toujours à l'aide d'un préfixe de table est une bonne idée pour toutes les colonnes de la requête.

    Cependant, ce problème est résolu en utilisant n'importe quel préfixe de table devant des colonnes, que ce soit le nom de la table ou le nom d'alias réel.

  2. L'alias est nécessaire (par opposition au nom de la table réelle) lorsque vous utilisez la même table deux fois.

  3. De nombreuses expériences avec le maintien de nombreux SQL complexes, je dois dire que ma vue est à 100% en face de la vôtre.

    nommément, à l'aide d'un alias de table à 1 lettre surtout à 1 lettre permet de lire / gérer le code.

    Lorsque vous déboguez un long morceau de SQL avec des joints complexes à 2 heures du matin pendant la production d'urgence, en regardant 10-15 lignes ci-dessus pour voir quel tableau correspond à l'alias "E" est beaucoup plus difficile.

    Ce point a 2 exceptions

    • Lorsque la logique commerciale de la requête utilise la table dans un but très distinct du nom de la table.

    • Lorsque le nom de la table est déraisonnablement long et déraisonnable en raison de circonstances au-delà de votre contrôle - et ensuite, l'alias devrait toujours être lisible et logique. Par exemple. " EmaileetAndicDexedByUidsourcedFromHR " peut et devrait généralement être des alias comme " employé ", mais pas comme " E "

    • De plus, pour éviter d'avoir des chaînes trop longues, cela aide à traiter si vous formatez vos requêtes à l'aide de nouvelles lignes et alignement:

      Sélectionnez Employee.Id, Dept.DeptName de l'employé Rejoignez Dept sur employé.deptid = Dept.Id

      vs xxx


3 commentaires

E et d ne sont pas si mauvais dans ce cas, mieux que le arbitraire A et B


@CK - Ce n'est pas si mauvais pour une requête d'échantillon aussi simple que ceci. En tant que politique, c'est mauvais, car les questions seront lues par des personnes qui peuvent ne pas connaître tous les 1000 noms de table par cœur, dans une requête avec 5 jointures de table et des dizaines de lignes longues.


+1 Pour la plupart des points, bien que (comme CK), je pense que de courts alias peuvent être assez lisibles dans des requêtes simples. Le point clé est que les alias doivent être facilement compréhensibles.



0
votes

Je préfère utiliser les noms de table pleinement qualifiés dans la plupart des cas. J'utilise généralement uniquement un nom d'alias pour les tables si une jointure interne est requise entre deux tables dans des bases de données distinctes, juste pour en faire un peu plus lisible. xxx pré>

Cependant, je recommanderais d'utiliser des noms d'alias Pour que vos champs afin d'empêcher les modifications requises pour appeler des applications Down Flux. P>

Select Employees.Name as [Name]
From   Employees


0 commentaires