8
votes

Pourquoi mettre `autour des colonnes?

Dans certains codes, je vois que les gens mettent `autour de leurs colonnes. Pourquoi? Y a-t-il une différence de ne pas les utiliser?

SELECT `players`.`name`, `houses`.`id` FROM `players`, `houses` 
WHERE `houses`.`owner` = `players`.`id`


2 commentaires

Notez que cela ne s'applique pas simplement aux colonnes mais aussi des tables.


Je me suis souvent demandé à moi-même - la réponse de Kenntm ci-dessous est correcte, mais à quelle fréquence rencontrons-nous cela? Jamais ... mais il est toujours très populaire d'utiliser des backtstics. Je pense que peut-être que les gens aiment comme la façon dont il désigne visuellement les différentes parties de la grammaire. (Je suis peut-être d'accord - surtout si ce n'est pas capitalisant des mots-clés, qui est aussi agréable, mais je suis déchiré).


3 Réponses :


19
votes

L'utilisation des back-trotes permet aux mots réservés d'être utilisés comme noms de colonne ou de table, par exemple

mysql_prepare_statement("SELECT `%q` FROM `%q` WHERE `%q` > 0", col, tbl, col_cond);


0 commentaires

3
votes

Certains noms de colonne peuvent être des mots réservés dans MySQL. Dans de tels cas, vous pouvez les citer avec `. Pour des raisons de cohérence et d'une vérification future, certains développeurs citent tous les identificateurs.


0 commentaires

1
votes

Un terme commun pour les backtsks utilisés à cette mode est "Citations d'identifiant". Ils sont utilisés pour renfermer les noms des objets de schéma (tables, colonnes, procédures, déclencheurs, etc., etc.). Ils sont utilisés car ils autorisent des caractères illégaux autrement illégal (espaces, caractères de ponctuation, etc.) et des mots réservés SQL à apparaître dans (ou en tant que entité de) le nom d'objet.

L'utilisation de backtsks à cette fin est spécifique à la MySQL. Dans la norme ANSI pour SQL, les identificateurs sont censés être enfermés dans Double-citations ". MySQL considère " comme délimiteur de chaîne par défaut, mais si vous définissez le mode SQL. à inclure ansi_quotes , il considérera " comme une autre marque de devis d'identificateur (backticks fonctionnera toujours aussi). D'autres RDBMS ont également des caractères d'identifiant propriétaires; par exemple SQL Le serveur vous permet d'utiliser [...] ainsi que "..." . .


0 commentaires