Je suis nouveau à SQL et j'ai une question à propos de la participation à 2 tables. Pourquoi existe-t-il un ex. P> . Code> entre clients.custnum code> dans cet exemple. Quelle est sa signification et que fait-il?
3 Réponses :
Le . code> est de spécifier une colonne d'une table.
Utilisons votre table cliente; Nous pourrions faire: SELECT c.custnum, c.state, c.qty FROM customers as c INNER JOIN
sales as s ON c.custnum = s.custnum
Je recommanderais de préparer chaque colonne avec le nom de la table (préférable son alias) sur chaque requête qui utilise plus d'une table. +1 de toute façon
Cela ne serait-il pas redondant et gonflé dans des bases de données plus grandes cependant? De plus, plus la complexité et les abréviations que vous ajoutez, plus cela peut devenir déroutant. J'avais personnellement recommandé contre elle (parler de l'expérience).
@ Levasseeur-SP, je voudrais parvenir à TheMPALER sur l'ajout d'alias spécialement pour quiconque suivant après une personne qui n'est plus une entreprise et d'essayer de prendre des pièces. Des alias précis vs juste a, b, c, d peuvent être vagues sauf "c" pour les clients. Mais quelque chose comme "O" pour "commandes" ou "ODTL" pour les ordonnances de commande. J'ai vu des noms trèslongtablernes dans des messages ici et cela pourrait devenir douloureux de suivre et de voir.
Je me sens gêné parce que je viens de réaliser ce qu'il voulait dire ... Je pensais qu'il disait de changer les noms de colonnes en "Table_Column" pour ne jamais avoir à utiliser le ".". . Maintenant que je l'obtiens, je suis d'accord avec lui aussi!
Pensez-y comme un moyen de classer la nature hiérarchique de la base de données. Dans une DB, il y a des tables et des tables il y a des colonnes. C'est juste une façon de garder la piste, surtout si vous travaillez avec plusieurs tables pouvant avoir le même nom de colonne. P>
Par exemple, une table appelée vente et une table appelée client pourrait avoir une colonne appelée la date. Vous pouvez écrire une requête où vous ne voulez que la date de la table des ventes, vous pourriez donc spécifier qu'en écrivant: p>
Sélectionnez *
Des ventes
Rejoindre interne clients sur sales.id = clients.ID
où vente.date = '1/1/2019' code> p>
Dans la requête ci-dessous, deux tables sont référées. L'un est des clients un autre est l'état. Étant donné que les deux ont la même caisse de colonne, nous avons besoin d'un moyen de dire à la base de données que custnum faisons-nous référence. Comme il peut y avoir beaucoup de Bob, si leur nom de famille est donc utilisé pour la désambiguïté.
Je considérerais le style ci-dessous aussi plus clair. C'est l'opinionose. P>
Je recommanderais de préparer chaque colonne avec le nom de la table (préférable son alias) sur chaque requête qui utilise plus d'une table. +1
Dans votre requête particulière, les deux colonnes
clients.custnum code> etvente.custnum code> ont toujours la même valeur en raison du prédicat de jointure. Parfois, cependant, les colonnes avec le même nom (à partir de différentes tables) peuvent finir par avoir des valeurs totalement différentes, et vous souhaitez vous assurer de sélectionner le bon. Le préfixe est alors nécessaire.@marc_s: C'est en fait l'une des règles de syntaxe les plus élémentaires de la norme SQL. Il fait référence à la colonne d'une table et est absolument identique sur tous les produits SGBD