Littéraux : comment écrire les chaînes et les nombres
<<<
Noms de bases, tables, index, colonnes et alias Variables utilisateur
>>>

10 Structure du langage
 Manuel de Référence MySQL 4.1 : Version Française

Littéraux : comment écrire les chaînes et les nombres
->Noms de bases, tables, index, colonnes et alias
Variables utilisateur
Variables système
Syntaxe des commentaires
Cas des mots réservés MySQL

10.2 Noms de bases, tables, index, colonnes et alias

Les noms des bases de données, tables, index, colonnes et alias suivent tous les mêmes règles en MySQL.

La table suivante décrit la taille maximale et les caractères autorisées pour chaque type d'identifiant.
Identifiant Longueur maximale Caractères autorisés
Base de données 64 Tous les caractères autorisés dans un nom de dossier à part '/' , '\' et '.' .
Table 64 Tous les caractères autorisés dans le nom d'un fichier à part '/' et '.' .
Colonne 64 Tous.
Index 64 Tous.
Alias 255 tous.
Notez qu'en plus de ce qui précède, vous n'avez pas droit au caractères ASCII(0) ou ASCII(255) dans un identifiant. Avant MySQL 4.1, les identifiants que pouvaient pas contenir de guillemets.

Depuis MySQL 4.1, les identifiants sont stockés en Unicode (UTF8). Cela s'applique aux identifiants stockés dans les tables de définitions du fichier .frm , et aux identifiants stockés dans les tables de droits de la base mysql . Même si les identifiants Unicode peuvent inclure des caractères multi-octets, notez que les tailles maximales affichées dans la table sont donnés en octets. Si un identifiant contient un caractère multi-octet, le nombre de caractères autorisé est alors inférieur aux chiffres affichés.

Un identifiant peut être entre guillemet ou pas. Si un identifiant est un mot réservé, ou qu'il contient des caractères spéciaux, vous devez le mettre entre guillemets lorsque vous l'utilisez. Pour une liste des mots réservés, voyez Est-ce que MySQL est sensible aux mots réservés ? . Les caractères spéciaux sont hors de la plage des caractères alpha-numérique et '_' et '$' .

Notez que si un identifiant est un mot réservé, ou contient des caractères spéciaux, vous devez absolument le protéger avec '`' :

Le caractère de protection des identifiants est le guillemet oblique '`' :

mysql> SELECT * FROM `select` WHERE `select`.id > 100;
Si vous utilisez MySQL avec les modes MAXDB ou ANSI_QUOTES , il est aussi possible d'utiliser les guillemets doubles pour les identifiants :

mysql> CREATE TABLE "test" (col INT);
ERROR 1064: You have an error in your SQL syntax. (...)
mysql> SET SQL_MODE="ANSI_QUOTES";
mysql> CREATE TABLE "test" (col INT);
Query OK, 0 rows affected (0.00 sec)
Choisir son mode SQL .

Depuis MySQL 4.1, les guillemets peuvent être inclus dans les noms d'identifiants. Si le caractère inclus dans l'identifiant est le même que celui qui est utilisé pour protéger l'identifiant, doublez-le. La commande suivante crée la table a`b , qui contient la colonne c"d :


mysql> CREATE TABLE `a``b` (`c"d` INT);
La protection d'identifiant par guillemets a été introduite en MySQL 3.23.6 pour permettre l'utilisation de mots réservés ou des caractères spéciaux dans les noms de colonnes. Avant la version 3.23.6, vous ne pouviez pas utiliser les identifiants qui utilisent des guillemets, et les règles sont plus restrictives :
  • Un nom d'identifiant est constitué de caractères alpha-numériques issus du jeu de caractères courant, plus '_' et '$' . Le jeu de caractères par défaut est ISO-8859-1 (Latin1). Cela peut être modifié avec l'option de démarrage --default-character-set de mysqld . Le jeu de caractères utilisé pour les données et le stockage .
  • Un nom peut commencer avec n'importe quel caractère qui est valide dans un identifiant. En particulier, un nom peut commencer par un chiffre : cela est différent dans de nombreuses autres bases de données. Cependant, un nom sans guillemets ne peut pas contenir uniquement des chiffres.
  • Vous ne pouvez pas utiliser le caractère '.' dans les noms, car il est utilisé pour les formats complets de références aux colonnes, en utilisant les noms de tables ou de bases. ( Identifier Qualifiers ).
Il est recommandé de ne pas utiliser de noms comme 1e , car une expression comme 1e+1 est ambiguÎ. Elle pourrait être interprétée comme l'expression 1e + 1 ou comme le nombre 1e+1 , suivant le contexte.

Sommaire :

<< Noms de bases, tables, index, colonnes et alias >>
Littéraux : comment écrire les chaînes et les nombres Structure du langage Variables utilisateur