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 13:49] – [Comments] admintutoriel:sql:langage:start [2022/08/13 21:57] (Version actuelle) – modification externe 127.0.0.1
Ligne 15: Ligne 15:
 ===== Query Attributes ===== ===== Query Attributes =====
  
-===== Comments =====+===== Commentaires =====
  
 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 :+<WRAP center round info 60%> 
 +Évitez les commentaires imbriqués, obsolètes. 
 +</WRAP>
  
-<code sql >mysqlSELECT 1+1;     # Ce commentaire se poursuit jusqu'à la fin de la ligne +<WRAP center round info 60%> 
-mysql> SELECT 1+1;     -- Ce commentaire se poursuit jusqu'à la fin de la ligne +**Variantes** 
-mysqlSELECT 1 /* ceci est un commentaire en ligne */ + 1; +<WRAP list-deep> 
-mysqlSELECT 1+ +  - <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 
-ceci est un +  /*+ (avec un +) Exemple :<code sql >SELECT /*+ BKA(t1) */ FROM ... ;</code>spécifie des conseils d'optimisation 
-commentaire sur plusieurs lignes +</WRAP> 
-*/ +</WRAP>
-1; +
-</code>+
  
-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 :<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> 
- 
-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 ===== ===== Voir aussi =====