est-il toujours une meilleure pratique à utiliser - au lieu de - p> autre que lisibilité forte > et
6 Réponses :
Lorsque vous faites référence à deux fois le même tableau, vous devez utiliser un alias. P>
Autre que cela, il n'y a aucune raison technique que je peux penser. P>
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. P>
Mais quand vous les développez ... Les alias sont votre ami, la main vers le bas. p>
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. P>
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. P>
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. P>
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. P> LI>
L'alias est 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. p>
nommément, à l'aide d'un alias de table à 1 lettre surtout à 1 lettre permet de lire / gérer le code. P>
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. P >
Ce point a 2 exceptions p>
Lorsque la logique commerciale de la requête utilise la table dans un but très distinct du nom de la table. p> li>
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. " 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: P>
vs p>
EmaileetAndicDexedByUidsourcedFromHR code>" peut et devrait généralement être des alias comme "
employé code>", mais pas comme "
E p>" p> p> p> p> p> p> p> p> p> p> P>
ul> li>
Sélectionnez Employee.Id, Dept.DeptName de l'employé Rejoignez Dept sur employé.deptid = Dept.Id CODE> P> LI>
E code> et
d code> ne sont pas si mauvais dans ce cas, mieux que le
arbitraire A code> et
B code>
@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.
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. 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