Le serveur MySQL inclut des extensions que vous ne trouverez
        probablement pas dans les autres bases de données. Soyez
        prévenus que si vous les utilisez, votre code ne sera
        probablement pas portable sur d'autres serveurs SQL. Dans
        certains cas, vous pouvez écrire du code qui inclut des
        spécificités de MySQL, mais qui restent portables, en les
        incluant dans des commentaires de la forme /*! ...
        */. Dans ce cas, le serveur MySQL va analyser la
        chaîne et exécuter le code à l'intérieur de ces commentaires
        comme une commande normale, mais d'autres serveurs ignoreront
        ces commentaires. Par exemple :
      
SELECT /*! STRAIGHT_JOIN */ col_name FROM table1,table2 WHERE ...
        Si vous ajoutez le numéro de version après le point
        d'exclamation ‘!’, la syntaxe
        sera exécutée uniquement si la version du serveur MySQL est
        égale ou plus récente que le numéro de version utilisé.
      
CREATE /*!32302 TEMPORARY */ TABLE t (a int);
        Cela signifie que si vous avez la version 3.23.02 ou plus
        récente, le serveur MySQL va utiliser le mot réservé
        TEMPORARY.
      
Voici une liste des apports spécifiques de MySQL :
Organisation des données sur le disque
MySQL fait correspondre à chaque base un dossier dans le dossier de données MySQL, et à chaque table des fichiers portant le même nom. Ceci a plusieurs implications :
Les noms des bases de données et des tables sont sensibles à la casse sur les systèmes d'exploitation qui ont des systèmes de fichiers sensibles à la casse (comme la plupart des systèmes Unix). See Section 9.2.2, « Sensibilité à la casse pour les noms ».
                  Vous pouvez utiliser les commandes systèmes standard
                  pour sauver, renommer, déplacer, effacer et copier
                  des tables. Par exemple, pour renommer une table, il
                  suffit de renommer les fichiers
                  .MYD, .MYI
                  et .frm et de leur donner un
                  nouveau nom.
                
Les noms de bases, tables, index, colonnes ou alias peuvent commencer par des chiffres, mais ne peuvent pas être constitués uniquement de noms.
Syntaxe générale du langage
                  Les chaînes de caractères peuvent être soit
                  délimitées par ‘"’,
                  soit par ‘'’. Pas
                  seulement par ‘'’.
                
                  L'utilisation du caractère de protection
                  ‘\’.
                
                  Dans une requête SQL, vous pouvez accéder à des
                  tables situées dans différentes bases de données,
                  avec la syntaxe db_name.tbl_name.
                  Certains serveurs SQL fournissent la même
                  fonctionnalité, mais l'appellent un User
                  space. Le serveur MySQL ne supporte par les
                  espaces de nom de tables, comme dans :
                  create table ralph.my_table...IN
                  my_tablespace.
                
Syntaxe de commande SQL
                  Les commandes ANALYZE TABLE,
                  CHECK TABLE, OPTIMIZE
                  TABLE et REPAIR TABLE.
                
                  Les commandes CREATE DATABASE et
                  DROP DATABASE. See
                  Section 13.2.3, « Syntaxe de CREATE DATABASE ».
                
                  La commande DO.
                
                  La commande EXPLAIN SELECT pour
                  avoir le détail des jointures de tables.
                
                  Les commandes FLUSH et
                  RESET.
                
                  La commande SET. See
                  Section 13.5.2.8, « Syntaxe de SET ».
                
                  La commande SHOW. See
                  Section 13.5.3, « Syntaxe de SHOW ».
                
                  L'utilisation de la commande LOAD DATA
                  INFILE. Dans de nombreuses situations, cette
                  syntaxe est compatible avec la commande d'Oracle
                  LOAD DATA INFILE. See
                  Section 13.1.5, « Syntaxe de LOAD DATA INFILE ».
                
                  L'utilisation de RENAME TABLE. See
                  Section 13.2.9, « Syntaxe de RENAME TABLE ».
                
                  L'utilisation de REPLACE au lieu de
                  DELETE + INSERT.
                  See Section 13.1.6, « Syntaxe de REPLACE ».
                
                  L'utilisation de CHANGE col_name,
                  DROP col_name ou DROP
                  INDEX, IGNORE ou
                  RENAME dans une commande
                  ALTER TABLE. See
                  Section 13.2.2, « Syntaxe de ALTER TABLE ».
                
                  L'utilisation de noms d'index, de préfixes d'index,
                  et l'utilisation des mots-clé
                  INDEX or KEY
                  dans une commande de création de table
                  CREATE TABLE. See
                  Section 13.2.5, « Syntaxe de CREATE TABLE ».
                
                  L'utilisation des clauses TEMPORARY
                  et IF NOT EXISTS avec
                  CREATE TABLE.
                
                  L'utilisation de DROP TABLE avec
                  les mots-clé IF EXISTS.
                
                  Vous pouvez effacer plusieurs tables avec une seule
                  commande DROP TABLE.
                
                  La clause LIMIT de la commande
                  DELETE.
                
                  La syntaxe INSERT INTO ... SET col_name =
                  ....
                
                  La clause DELAYED des commandes
                  INSERT et
                  REPLACE.
                
                  La clause LOW_PRIORITY des
                  commandes INSERT,
                  REPLACE, DELETE
                  et UPDATE.
                
                  L'utilisation de INTO OUTFILE et
                  STRAIGHT_JOIN dans les requêtes
                  SELECT. See
                  Section 13.1.7, « Syntaxe de SELECT ».
                
                  L'option SQL_SMALL_RESULT de la
                  commande SELECT.
                
                  Vous n'êtes pas obligé de nommer toutes les colonnes
                  que vous sélectionnez dans la clause GROUP
                  BY. Cela donne de meilleures performances
                  pour certaines situations spécifiques, mais
                  classiques. See
                  Section 12.9, « Fonctions et options à utiliser dans les clauses GROUP
      BY ».
                
                  Vous pouvez spécifier ASC ou
                  DESC dans la clause GROUP
                  BY.
                
                  La possibilité de modifier les variables dans les
                  commandes avec l'opérateur := :
SELECT @a:=SUM(total),@b=COUNT(*),@a/@b AS avg FROM test_table; SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
Types de colonnes
                  Les types de colonnes MEDIUMINT,
                  SET, ENUM et les
                  types BLOB et
                  TEXT.
                
                  Les attributs de champs
                  AUTO_INCREMENT,
                  BINARY, NULL,
                  UNSIGNED et
                  ZEROFILL.
                
Fonctions et opérateurs
Pour aider les utilisateurs qui viennent d'autres environnements SQL, le serveur MySQL supporte des alias de nombreuses fonctions. Par exemple, toutes les fonctions de chaînes de caractères supportent simultanément les syntaxes ANSI SQL et ODBC.
                  Le serveur MySQL comprend les opérateurs
                  || et &&
                  comme opérateurs logiques OR et
                  AND, comme en langage C. Pour le
                  serveur MySQL, les opérateurs ||
                  et OR sont synonymes, ainsi que
                  && et
                  AND. En conséquence, MySQL ne
                  supporte pas l'opérateur de concaténation de
                  chaînes ANSI SQL ||. Utilisez
                  plutôt la fonction CONCAT(). Comme
                  CONCAT() prend un nombre illimité
                  d'arguments, il est facile de convertir des
                  expressions utilisant ||, pour
                  qu'elles fonctionnent sur le serveur MySQL.
                
                  L'utilisation de COUNT(DISTINCT
                  list) où list contient
                  plus d'un élément.
                
                  Toutes les comparaisons de chaînes sont insensibles
                  à la casse par défaut, et l'ordre de tri est
                  déterminé par le jeu de caractères courant
                  (ISO-8859-1 Latin1 par défaut). Si
                  vous en souhaitez un autre, il faut déclarer les
                  colonnes avec l'attribut BINARY ou
                  utiliser l'opérateur BINARY pour
                  forcer les comparaisons à prendre en compte la casse,
                  en fonction du jeu de caractères utilisé sur l'hôte
                  du serveur MySQL.
                
                  L'opérateur % est synonyme de
                  MOD(). C'est à dire que N
                  % M est équivalent à
                  MOD(N,M). % est
                  supporté pour les programmeurs C, et pour la
                  compatibilité avec PostgreSQL.
                
                  Les opérateurs =,
                  <>, <=
                  ,<,
                  >=,>,
                  <<,
                  >>,
                  <=>, AND,
                  OR ou LIKE
                  peuvent être utilisés pour les comparaisons de
                  colonnes à gauche de la clause
                  FROM dans les commandes
                  SELECT. Par exemple :
                
mysql> SELECT col1=1 AND col2=2 FROM tbl_name;
                  La fonction LAST_INSERT_ID(), qui
                  retourne la plus récente valeur de colonne
                  AUTO_INCREMENT. See
                  Section 12.8.3, « Fonctions d'informations ».
                
                  LIKE est possible avec des colonnes
                  numériques.
                
                  Les opérateurs d'expressions régulières étendus
                  REGEXP et NOT
                  REGEXP.
                
                  CONCAT() et
                  CHAR() avec un argument ou plus de
                  deux arguments. Avec le serveur MySQL, ces fonctions
                  peuvent prendre n'importe quel nombre d'arguments.
                
                  Les fonctions BIT_COUNT(),
                  CASE, ELT(),
                  FROM_DAYS(),
                  FORMAT(), IF(),
                  PASSWORD(),
                  ENCRYPT(),
                  MD5(), ENCODE(),
                  DECODE(),
                  PERIOD_ADD(),
                  PERIOD_DIFF(),
                  TO_DAYS() et
                  WEEKDAY().
                
                  L'utilisation de la fonction TRIM()
                  pour réduire les chaînes. L'ANSI SQL ne supporte que
                  les suppressions de caractères uniques.
                
                  Les fonctions de groupe de la clause GROUP
                  BY STD(),
                  BIT_OR(),
                  BIT_AND(),
                  BIT_XOR() et
                  GROUP_CONCAT(). See
                  Section 12.9, « Fonctions et options à utiliser dans les clauses GROUP
      BY ».
                
Pour une liste hiérarchisée des nouvelles extensions qui seront ajoutées à MySQL, vous pouvez consulter la liste de tâche en ligne sur http://dev.mysql.com/doc/mysql/en/TODO.html. C'est la dernière liste qui est utilisée dans ce formulaire. See Section B.8, « Les évolutions de MySQL (la liste des tâches) ».
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

