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… :-)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tutoriel:sql:langage:start [2021/10/19 14:01] – [Commentaires] admintutoriel:sql:langage:start [2022/08/13 21:57] (Version actuelle) – modification externe 127.0.0.1
Ligne 18: Ligne 18:
  
 MySQL Server prend en charge trois styles de commentaires : MySQL Server prend en charge trois styles de commentaires :
-  ~~ol:hierarchical~~ +<WRAP list-deep> 
-  - **Depuis un caractère # jusqu'à la fin de la ligne** +  - **Depuis un caractère # jusqu'à la fin de la ligne** :<code sql >SELECT * From MaTable; # Commentaire jusqu'à la fin de la ligne</code> 
-  - **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. +  - **Depuis un double tiret (%%--%%) jusqu'à la fin de la ligne** :<code sql >SELECT * From MaTable; -- Commentaire jusqu'à la fin de la ligne</code>Le 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.) 
-  - **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.+  - **Depuis une séquence /* jusqu'à la séquence */ qui suit** :<code sql >/* 
 +Commentaire 
 +sur plusieurs lignes 
 +*/</code> Cette syntaxe permet un commentaire sur plusieurs lignes car les séquences de début et de fin n'ont pas besoin d'être sur la même ligne. 
 +</WRAP>
  
-L'exemple suivant montre les trois styles de commentaires :<code sql +<WRAP center round info 60%
-mysql> SELECT 1+1;     # Ce commentaire se poursuit jusqu'à la fin de la ligne +Évitez les commentaires imbriqués, obsolètes. 
-mysql> SELECT 1+1;     -- Ce commentaire se poursuit jusqu'à la fin de la ligne +</WRAP>
-mysql> SELECT 1 /* ceci est un commentaire en ligne */ + 1; +
-mysql> SELECT 1+ +
-/* +
-ceci est un +
-commentaire sur plusieurs lignes +
-*/ +
-1; +
-</code>+
  
-Les commentaires imbriqués ne sont pas pris en charge et sont obsolètes ; les utilisateurs doivent les éviter.+<WRAP center round info 60%> 
 +**Variantes** 
 +<WRAP list-deep> 
 +  - <code sql >/*! MySQL-specific code */</code>Ce code est exécuté par MySQL Server mais pas par un autre serveur SQL. Exemple :<code sql >SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...</code>MySQL Server reconnaît le mot clé STRAIGHT_JOIN mais pas les autres serveurs 
 +  - 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éExemple :<code sql >CREATE TABLE t1(a INT, KEY (a)) /*!50110 KEY_BLOCK_SIZE=1024 */;</code>Le mot-clé KEY_BLOCK_SIZE n'est exécuté que par MySQL server 5.1.10 ou supérieur 
 +  - /*+ (avec un +) Exemple :<code sql >SELECT /*+ BKA(t1) */ FROM ... ;</code>spécifie des conseils d'optimisation 
 +</WRAP> 
 +</WRAP>
  
-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 :<code sql >/*! MySQL-specific code */</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 :<code sql >SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...</code>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 :<code sql >CREATE TABLE t1(a INT, KEY (a)) /*!50110 KEY_BLOCK_SIZE=1024 */;</code> 
- 
-La syntaxe de commentaire qui vient d'être décrite s'applique à la façon dont le serveur mysqld analyse les instructions SQL. Le client mysql effectue également une analyse des instructions avant de les envoyer au serveur. (pour déterminer les limites des instructions dans une ligne d'entrée à plusieurs instructions.). 
- 
-Les commentaires au format /*!12345 ... */ ne sont pas stockés sur le serveur. Si ce format est utilisé pour commenter des programmes stockés, les commentaires ne sont pas conservés dans le corps du programme. 
- 
-Une autre variante de la syntaxe de commentaire de style C est utilisée pour spécifier des conseils d'optimisation. Les commentaires d'indice incluent un caractère + après la séquence d'ouverture de commentaire /*. Exemple :<code sql >SELECT /*+ BKA(t1) */ FROM ... ;</code> 
- 
-L'utilisation de commandes mysql abrégées telles que \C dans des commentaires /* ... */ sur plusieurs lignes n'est pas prise en charge. Les commandes abrégées fonctionnent dans /* sur une seule ligne ! ... */ commentaires de version, tout comme /*+ ... */ commentaires d'optimisation, qui sont stockés dans les définitions d'objets. Si vous craignez que les commentaires de l'optimiseur soient stockés dans les définitions d'objets de telle sorte que les fichiers de vidage, lorsqu'ils sont rechargés avec mysql, entraînent l'exécution de telles commandes, invoquez mysql avec l'option --binary-mode ou utilisez un client de rechargement autre que mysql. 
 ===== Voir aussi ===== ===== Voir aussi =====