Maison >base de données >tutoriel mysql >Comment les conventions de dénomination des tables et des colonnes PostgreSQL évitent-elles l'ambiguïté de l'analyse ?

Comment les conventions de dénomination des tables et des colonnes PostgreSQL évitent-elles l'ambiguïté de l'analyse ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-20 20:30:16247parcourir

How Do PostgreSQL Table and Column Naming Conventions Avoid Parsing Ambiguity?

Noms de tables et de colonnes : conventions de dénomination dans PostgreSQL

Dans PostgreSQL, les noms de tables et de colonnes sont soumis à des conventions de dénomination spécifiques. L'une de ces conventions est que ces noms ne peuvent pas commencer par des caractères numériques. Cette restriction est définie par la norme SQL-92 (accessible sur http://en.wikipedia.org/wiki/SQL-92), qui précise que le début de l'identifiant doit être de simples lettres latines.

Alors que cette dénomination La convention peut différer des pratiques courantes en programmation, il y a plusieurs raisons pour ce choix de conception.

Identifier Start Caractéristiques

En SQL, les identifiants (y compris les noms de tables et de colonnes) sont définis sous forme de chaînes pouvant contenir jusqu'à 63 caractères. Ces chaînes doivent commencer par des lettres latines ou des traits de soulignement, les caractères suivants étant des lettres, des chiffres ou des traits de soulignement.

Ambiguïté de syntaxe

Si les noms de tables et de colonnes étaient autorisés à commencer avec des caractères numériques, il y aurait un potentiel d'ambiguïté lors de l'analyse. Considérez les exemples suivants :

SELECT 2e2 3.4 FROM ...

Dans cette requête, l'analyseur ne saurait pas si 2e2 et 3.4 représentent des noms de colonnes ou des expressions numériques. Lorsque les identifiants commencent par des lettres, l'ambiguïté est éliminée et l'analyseur peut rapidement identifier correctement les expressions.

Consistance de la conception

En appliquant la convention selon laquelle les identifiants commencent par des lettres , le standard SQL garantit la cohérence de l'analyse et de l'exécution. Si les caractères numériques de début étaient autorisés, des règles supplémentaires seraient nécessaires pour différencier les identifiants des expressions numériques, ce qui pourrait conduire à des algorithmes d'analyse complexes et à une lisibilité réduite.

Noms entre guillemets

Bien que les caractères numériques de début ne soient pas autorisés par défaut, ils peuvent être utilisés en mettant le nom entre guillemets doubles. Cela crée un identifiant entre guillemets qui remplace la convention de dénomination standard. Par exemple, le nom de table 15909434_user peut être créé à l'aide de guillemets doubles :

CREATE TABLE "15909434_user" ( ... )

L'utilisation de guillemets doubles offre de la flexibilité et permet de créer des noms qui ne le font pas. ne respecte pas la convention standard. Cependant, il est important de noter que les identifiants cités ne sont pas aussi lisibles et peuvent être plus sujets aux erreurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn