Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Ceci est une ancienne révision du document !


Manuel de référence MySQL 8.0 - Structure du langage

Literal Values

Schema Object Names

Keywords and Reserved Words

User-Defined Variables

Expressions

Query Attributes

Commentaires

MySQL Server prend en charge trois styles de commentaires :

  1. Depuis un caractère # jusqu'à la fin de la ligne
  2. Depuis un double tiret (–) jusqu'à la fin de la ligne : dans MySQL, le deuxième tiret du double tiret (–) doit être suivi d'au moins un espace ou un caractère de contrôle (comme un espace, une tabulation, une nouvelle ligne, etc.). Cette syntaxe diffère légèrement de la syntaxe standard des commentaires SQL.
  3. Depuis une séquence /* jusqu'à la séquence */ qui suit, comme dans le langage de programmation C. Cette syntaxe permet à un commentaire de s'étendre sur plusieurs lignes car les séquences de début et de fin n'ont pas besoin d'être sur la même ligne.

L'exemple suivant montre les trois styles de commentaires :

mysql> SELECT 1+1;     # Ce commentaire se poursuit jusqu'à la fin de la ligne
mysql> SELECT 1+1;     -- Ce commentaire se poursuit jusqu'à la fin de la ligne
mysql> SELECT 1 /* ceci est un commentaire en ligne */ + 1;
mysql> SELECT 1+
/*
ceci est un
commentaire sur plusieurs lignes
*/
1;

Les commentaires imbriqués ne sont pas pris en charge et sont obsolètes ; les utilisateurs doivent les éviter.

Le serveur MySQL prend en charge certaines variantes de commentaires de style C. Ceux-ci vous permettent d'écrire du code qui inclut des extensions MySQL, mais qui reste portable, en utilisant des commentaires de la forme suivante :

/*! MySQL-specific code */

Dans ce cas, le serveur MySQL analyse et exécute le code dans le commentaire comme il le ferait pour toute autre instruction SQL, mais les autres serveurs SQL ignorent les extensions. Par exemple, MySQL Server reconnaît le mot clé STRAIGHT_JOIN dans l'instruction suivante, mais pas les autres serveurs :

SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...

Si vous ajoutez un numéro de version après le caractère !, la syntaxe dans le commentaire n'est exécutée que si la version MySQL est supérieure ou égale au numéro de version spécifié. Le mot-clé KEY_BLOCK_SIZE dans le commentaire suivant n'est exécuté que par les serveurs de MySQL 5.1.10 ou supérieur :

CREATE TABLE t1(a INT, KEY (a)) /*!50110 KEY_BLOCK_SIZE=1024 */;

The comment syntax just described applies to how the mysqld server parses SQL statements. The mysql client program also performs some parsing of statements before sending them to the server. (It does this to determine statement boundaries within a multiple-statement input line.) For information about differences between the server and mysql client parsers, see Section 4.5.1.6, “mysql Client Tips”.

Comments in /*!12345 … */ format are not stored on the server. If this format is used to comment stored programs, the comments are not retained in the program body.

Another variant of C-style comment syntax is used to specify optimizer hints. Hint comments include a + character following the /* comment opening sequence. Example:

SELECT /*+ BKA(t1) */ FROM … ;

For more information, see Section 8.9.3, “Optimizer Hints”.

The use of short-form mysql commands such as \C within multiple-line /* … */ comments is not supported. Short-form commands do work within single-line /*! … */ version comments, as do /*+ … */ optimizer-hint comments, which are stored in object definitions. If there is a concern that optimizer-hint comments may be stored in object definitions so that dump files when reloaded with mysql would result in execution of such commands, either invoke mysql with the –binary-mode option or use a reload client other than mysql.

Voir aussi


Basé sur « Language structure » par Manuel de référence MySQL 8.0.