0
votes

Comment puis-je utiliser le. correctement avec SQL?

Je suis nouveau à SQL et j'ai une question à propos de la participation à 2 tables. Pourquoi existe-t-il un . entre clients.custnum dans cet exemple. Quelle est sa signification et que fait-il?

ex. xxx

sql

2 commentaires

Dans votre requête particulière, les deux colonnes clients.custnum et vente.custnum 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


3 Réponses :


2
votes

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


4 commentaires

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!



-2
votes

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.

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:

Sélectionnez * Des ventes Rejoindre interne clients sur sales.id = clients.ID où vente.date = '1/1/2019'


0 commentaires

1
votes

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. xxx


1 commentaires

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