Table des matières
INFORMATION_SCHEMAINFORMATION_SCHEMA SCHEMATAINFORMATION_SCHEMA TABLESINFORMATION_SCHEMA COLUMNSINFORMATION_SCHEMA STATISTICSINFORMATION_SCHEMA USER_PRIVILEGESINFORMATION_SCHEMA SCHEMA_PRIVILEGESINFORMATION_SCHEMA TABLE_PRIVILEGESINFORMATION_SCHEMA COLUMN_PRIVILEGESINFORMATION_SCHEMA CHARACTER_SETSINFORMATION_SCHEMA COLLATIONSINFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITYINFORMATION_SCHEMA TABLE_CONSTRAINTSINFORMATION_SCHEMA KEY_COLUMN_USAGEINFORMATION_SCHEMA ROUTINESINFORMATION_SCHEMA VIEWSINFORMATION_SCHEMASHOW
    Le support de la base INFORMATION_SCHEMA est
    disponible en MySQL 5.0.2 et plus récent. Il fournit un accès aux
    métadonnées sur les bases de données.
  
Les ``métadonnées'' sont des informations sur les données, telles que le nom des bases de données, des tables, le type de données des colonnes ou les droits d'accès. On appelle aussi ces données le ``dictionnaire de données'' ou le ``catalogue système''.
Voici un exemple :
mysql>SELECT table_name, table_type, engine->FROM information_schema.tables->WHERE table_schema = 'db5'->ORDER BY table_name DESC;+------------+------------+--------+ | table_name | table_type | engine | +------------+------------+--------+ | v56 | VIEW | NULL | | v3 | VIEW | NULL | | v2 | VIEW | NULL | | v | VIEW | NULL | | tables | BASE TABLE | MyISAM | | t7 | BASE TABLE | MyISAM | | t3 | BASE TABLE | MyISAM | | t2 | BASE TABLE | MyISAM | | t | BASE TABLE | MyISAM | | pk | BASE TABLE | InnoDB | | loop | BASE TABLE | MyISAM | | kurs | BASE TABLE | MyISAM | | k | BASE TABLE | MyISAM | | into | BASE TABLE | MyISAM | | goto | BASE TABLE | MyISAM | | fk2 | BASE TABLE | InnoDB | | fk | BASE TABLE | InnoDB | +------------+------------+--------+ 17 rows in set (0.01 sec)
    Expliquation : la commande requiert la liste de toutes les tables
    de la base de données db5, en ordre
    anti-alphabétique, avec trois informations : le nom de la table,
    son type et le moteur de table.
  
    INFORMATION_SCHEMA est la ``base de données
    d'informations'', la base qui stocke les informations à propos des
    autres bases que le serveur MySQL entretient. Dans
    INFORMATION_SCHEMA, il existe plusieurs tables en
    lecture seule. Ce sont en fait des vues, et non pas des tables, ce
    qui fait que vous ne verrez pas de fichiers associés.
  
Chaque utilisateur MySQL a le droit d'accéder à ces tables, mais seules les lignes concernant des objets pour lesquels il a des droits seront visibles.
    Avantages de
    SELECT
  
    La commande SELECT ... FROM INFORMATION_SCHEMA a
    pour but d'être une méthode cohérente d'accéder aux informations
    fournies par les différentes commandes SHOW que
    MySQL supporte (SHOW DATABASES, SHOW
    TABLES, etc). En utilisant SELECT, vous
    avez plusieurs avantages comparés à SHOW :
  
Il est conforme aux règles de Codd. C'est à dire que tous les accès sont fait sur des tables.
        Personne n'a besoin d'apprendre une nouvelle syntaxe. Comme tout
        le monde connait déjà les commandes SELECT,
        il suffit d'apprendre les noms des objets.
      
L'implémenteeur n'a pas besoin d'ajouter de nouveaux mots-clé.
Il y a des millions de formats de résultats possibles, au lieu d'un seul. Cela apporte de la flexibilité aux applications qui ont des spécifications variables sur les métadonnées qu'elles recherchent.
La migration est plus facile, car toutes les autres bases de données fonctionnent sur ce schéma.
    Cependant, comme SHOW est une comande populaire
    auprès des employés et utilisateurs de MySQL, et que cela mettrait
    la pagaille si cette dernière venait à disparaître, les avantages
    de cette convention ne sont pas suffisants pour supprimer
    SHOW. En fait, il y a des améliorations à la
    commande SHOW en MySQL 5.0. Ils sont présentés
    dans la section Section 22.2, « Extensions à la commande SHOW ».
  
Standards
    L'implémentation des structures des tables de la base
    INFORMATION_SCHEMA suivent le standard ANSI/ISO
    SQL:2003 standard Part 11 ``Schemata''. Notre intention est
    d'atteindre une compatibilité partielle avec SQL:2003 core feature
    F021 ``Basic information schema''.
  
    Les utilisateurs de SQL Server 2000 (qui suit aussi ce standard)
    noteront une similarité importante. Cependant, MySQL a omis
    certaines colonnes qui ne sont pas pertinente dans notre
    implémentation, et a ajouté des colonnes qui lui sont spécifique.
    Par exemple, la colonne de moteur de stockage pour les tables dans
    la table INFORMATION_SCHEMA.TABLES.
  
    Même si les autres serveurs de base de données utilisent
    différents noms, comme syscat ou system, le nom standard est
    INFORMATION_SCHEMA.
  
    En effet, nous avons une nouvelle ``base de données'' appelée
    information_schema, même s'il n'y a pas besoin
    de faire un fichier qui porte ce nom. Il est possible de
    sélectionner la base INFORMATION_SCHEMA comme
    base par défaut avec la commande USE, mais la
    seule solution pour accéder au contenu de ces tables est la
    commande SELECT. Vous ne pouvez pas insérer de
    données ou modifier le contenu des tables.
  
Droits
    Il n'y pas de différence entre les prérequis de droits actuels
    pour la commande SHOW et les commandes
    SELECT. Dans chaque cas, vous avez les mêmes
    droits sur un objet, et vous en aurez besoin pour accéder aux
    informations le concernant.
  
INFORMATION_SCHEMA SCHEMATAINFORMATION_SCHEMA TABLESINFORMATION_SCHEMA COLUMNSINFORMATION_SCHEMA STATISTICSINFORMATION_SCHEMA USER_PRIVILEGESINFORMATION_SCHEMA SCHEMA_PRIVILEGESINFORMATION_SCHEMA TABLE_PRIVILEGESINFORMATION_SCHEMA COLUMN_PRIVILEGESINFORMATION_SCHEMA CHARACTER_SETSINFORMATION_SCHEMA COLLATIONSINFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITYINFORMATION_SCHEMA TABLE_CONSTRAINTSINFORMATION_SCHEMA KEY_COLUMN_USAGEINFORMATION_SCHEMA ROUTINESINFORMATION_SCHEMA VIEWSINFORMATION_SCHEMAPrésentation des sections suivantes
      Dans les prochaines sectinos, nous allons détailler les tables et
      colonnes de INFORMATION_SCHEMA. Pour chaque
      colonne, on présente deux informations :
    
Le ``Nom standard'' indique le nom standard SQL de la colonne.
          Le ``Nom SHOW'' indique son équivalent
          dans le résultat de la commande SHOW, s'il
          existe.
        
``Remarques'' fournit des informations supplémentaires, éventuellement. Nous avons marqué avec ``omis'' les colonnes dont MySQL ne fait aucun usage pour le moment. Nous avons omis ces colonnes : elles apparaissent dans les standards, mais pas dans MySQL. Leur présences est donc inutile ici.
      Pour éviter d'utiliser des mots qui soient réservés par le
      standard, par DB2, par SQL server ou Oracle, nous avons changé le
      nom des colonnes qui portent la mention ``extension MySQL''. Par
      exemple, nous avons changé COLLATION en
      TABLE_COLLATION dans la table
      TABLES. Voyez la liste des mots à la fin de
      cet article :
      http://www.dbazine.com/gulutzan5.shtml.
    
      La définition des colonnes, comme
      TABLES.TABLE_NAME), est généralement
      VARCHAR( où N) CHARACTER SET
      utf8N vaut au moins 64.
    
      Chaque section indique l'équivalent dans le résultat de la
      commande SHOW : c'est un équivalent à la
      commande SELECT qui lit les informations dans
      la table INFORMATION_SCHEMA, ou bien il n'y a
      pas d'équivalent.
    
Note : a l'heure actuelle, il manque des colonnes et certaines autres sont sans objet. Nous travaillons dessus, et nous mettrons à jour la documentation lorsque ces modifications seront faites.
        Un schema est une base de données. La table
        SCHEMATA fournit des informations sur les
        bases de données.
      
| Standard Name | SHOW name | Remarks | 
CATALOG_NAME | - | NULL | 
SCHEMA_NAME | Base de données | |
SCHEMA_OWNER | omis | |
DEFAULT_CHARACTER_SET_CATALOG | omis | |
DEFAULT_CHARACTER_SET_SCHEMA | omis | |
DEFAULT_CHARACTER_SET_NAME | ||
SQL_PATH | NULL | 
Notes :
            Pour SQL_PATH, nous auront peut-être
            quelque chose de fonctionne en MySQL 5.x. Pour le moment, il
            vaut toujours NULL.
          
Les commandes suivantes sont équivalentes :
SELECT SCHEMA_NAME AS `Database` FROM INFORMATION_SCHEMA.SCHEMATA [WHERE SCHEMA_NAME LIKE 'wild'] SHOW DATABASES [LIKE 'wild']
        La table TABLES fournit des informations sur
        les bases de données.
      
| Nom standard | Nom SHOW | Remarques | 
TABLE_CATALOG | NULL | |
TABLE_SCHEMA | Table_... | |
TABLE_NAME | Table_... | |
TABLE_TYPE | ||
SELF_REFERENCING_COLUMN_NAME | omis | |
REFERENCE_GENERATION | omis | |
USER_DEFINED_TYPE_NAME | omis | |
IS_INSERTABLE_INTO | omis | |
IS_TYPED | omis | |
COMMIT_ACTION | omis | |
ENGINE | Engine | extension MySQL | 
VERSION | Version | extension MySQL | 
ROW_FORMAT | Row_format | extension MySQL | 
TABLE_ROWS | Rows | extension MySQL | 
AVG_ROW_LENGTH | Avg_row_length | extension MySQL | 
DATA_LENGTH | Data_length | extension MySQL | 
MAX_DATA_LENGTH | Max_data_length | extension MySQL | 
INDEX_LENGTH | Index_length | extension MySQL | 
DATA_FREE | Data_free | extension MySQL | 
AUTO_INCREMENT | Auto_increment | extension MySQL | 
CREATE_TIME | Create_time | extension MySQL | 
UPDATE_TIME | Update_time | extension MySQL | 
CHECK_TIME | Check_time | extension MySQL | 
TABLE_COLLATION | Collation | extension MySQL | 
CHECKSUM | Checksum | extension MySQL | 
CREATE_OPTIONS | Create_options | extension MySQL | 
TABLE_COMMENT | Comment | extension MySQL | 
Notes :
            TABLE_SCHEMA et
            TABLE_NAME sont un seul champ dans le
            résultat de SHOW, par exemple
            Table_in_db1.
          
            TABLE_TYPE doit être BASE
            TABLE ou VIEW. Si la table est
            temporaire, alors TABLE_TYPE =
            TEMPORARY. Il n'y a pas de vues
            temporaires, alors il ne peut pas y avoir d'ambiguité.
          
            Nous n'avons rien pour les jeux de caractères par défaut
            des tables. TABLE_COLLATION s'en
            approche, car les noms des collations commencent avec un nom
            de jeu de caractères.
          
Les commandes suivantes sont équivalentes :
SELECT table_name FROM INFORMATION_SCHEMA.TABLES [WHERE table_schema = 'db_name'] [WHERE|AND table_name LIKE 'wild'] SHOW TABLES [FROM db_name] [LIKE 'wild']
        La table COLUMNS fournit des informations sur
        les colonnes dans les tables.
      
| Nom standard | Nom dans SHOW | Remarques | 
TABLE_CATALOG | NULL | |
TABLE_SCHEMA | ||
TABLE_NAME | ||
COLUMN_NAME | Field | |
ORDINAL_POSITION | see notes | |
COLUMN_DEFAULT | Default | |
IS_NULLABLE | Null | |
DATA_TYPE | Type | |
CHARACTER_MAXIMUM_LENGTH | Type | |
CHARACTER_OCTET_LENGTH | ||
NUMERIC_PRECISION | Type | |
NUMERIC_PRECISION_RADIX | omis | |
NUMERIC_SCALE | Type | |
DATETIME_PRECISION | omis | |
INTERVAL_TYPE | omis | |
INTERVAL_PRECISION | omis | |
CHARACTER_SET_CATALOG | omis | |
CHARACTER_SET_SCHEMA | omis | |
CHARACTER_SET_NAME | ||
COLLATION_CATALOG | omis | |
COLLATION_SCHEMA | omis | |
COLLATION_NAME | Collation | |
DOMAIN_NAME | omis | |
UDT_CATALOG | omis | |
UDT_SCHEMA | omis | |
UDT_NAME | omis | |
SCOPE_CATALOG | omis | |
SCOPE_SCHEMA | omis | |
SCOPE_NAME | omis | |
MAXIMUM_CARDINALITY | omis | |
DTD_IDENTIFIER | omis | |
IS_SELF_REFERENCING | omis | |
IS_IDENTITY | omis | |
IDENTITY_GENERATION | omis | |
IDENTITY_START | omis | |
IDENTITY_INCREMENT | omis | |
IDENTITY_MAXIMUM | omis | |
IDENTITY_MINIMUM | omis | |
IDENTITY_CYCLE | omis | |
IS_GENERATED | omis | |
GENERATION_EXPRESSION | omis | |
COLUMN_KEY | Key | extension MySQL | 
EXTRA | Extra | extension MySQL | 
COLUMN_COMMENT | Comment | extension MySQL | 
Notes :
            Dans SHOW, la colonne
            Type inclut les valeurs de différentes
            colonnes COLUMNS.
          
            ORDINAL_POSITION est obligatoire, car il
            faudra peut-être un jour indiquer ORDER BY
            ORDINAL_POSITION. Contrairement à
            SHOW, SELECT n'a pas
            de classement par défaut.
          
            CHARACTER_OCTET_LENGTH doit être le
            même que CHARACTER_MAXIMUM_LENGTH, sauf
            pour les jeux de caractères multi-octets.
          
            CHARACTER_SET_NAME peut être dérivé de
            Collation. Par exemple, si vous indiquez
            SHOW FULL COLUMNS FROM t, et que vous
            pouvez voir dans la colonne Collation la
            valeur latin1_swedish_ci, alors le jeu de
            caractères est la partie placée avant le premier
            caractère souligné : latin1.
          
Les commandes suiavntes sont presque équivalentes :
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tbl_name' [AND table_schema = 'db_name'] [AND column_name LIKE 'wild'] SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild]
        La table STATISTICS fournit des informations
        sur les tables d'index.
      
| Nom standard | Nom SHOW | Remarques | 
TABLE_CATALOG | NULL | |
TABLE_SCHEMA | = Database | |
TABLE_NAME | Table | |
NON_UNIQUE | Non_unique | |
INDEX_SCHEMA | = Database | |
INDEX_NAME | Key_name | |
TYPE | omis | |
SEQ_IN_INDEX | Seq_in_index | |
COLUMN_NAME | Column_name | |
COLLATION | Collation | |
CARDINALITY | Cardinality | |
PAGES | omis | |
FILTER_CONDITION | omis | |
SUB_PART | Sub_part | extension MySQL | 
PACKED | Packed | extension MySQL | 
NULLABLE | Null | extension MySQL | 
INDEX_TYPE | Index_type | extension MySQL | 
COMMENT | Comment | extension MySQL | 
Notes :
            Il n'y a pas de table standard pour les index. La liste
            précédente est similaire au résultat que retourn SQL
            Server 2000 pour sp_statistics, mais nous
            avons remplacé le nom QUALIFIER par
            CATALOG et nous avons remplaclé le nom
            OWNER par SCHEMA.
          
            En fait, la table précédente est le résultat de
            SHOW INDEX sont dérivés du même
            parent. La correlation est très bonne.
          
Les commandes suivantes sont équivalentes :
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name = 'tbl_name' [AND schema_name = 'db_name' SHOW INDEX FROM tbl_name [FROM db_name]
        La table USER_PRIVILEGES fournit les
        informations sur les droits globaux. Cette information provient
        des tables mysql.user.
      
| Non standard | Nom SHOW | Remarques | 
GRANTEE | i.e. 'utilisateur'@'hote' | |
TABLE_CATALOG | NULL | |
PRIVILEGE_TYPE | ||
IS_GRANTABLE | 
Notes :
            C'est une table non standard. Elle prend ses valeurs dans
            les tables mysql.user.
          
        La table SCHEMA_PRIVILEGES fournit des
        informations sur les droits des schémas (l'autre nom des bases
        de données). Ces informations proviennent de la table
        mysql.db.
      
| Nom standard | Nom SHOW | Remarques | 
GRANTEE | i.e.g. 'utilisateur'@'hote' | |
TABLE_CATALOG | NULL | |
TABLE_SCHEMA | ||
PRIVILEGE_TYPE | ||
IS_GRANTABLE | 
Notes :
            Ceci est une table non-standard. Elle prend ses valeurs dans
            la table mysql.db.
          
        La table TABLE_PRIVILEGES affiche les
        informations sur les droits des tables. Ces informations
        proviennent de mysql.tables_priv.
      
| Nom standard | Nom SHOW | Remarques | 
GRANTOR | omis | |
GRANTEE | i.e. 'utilisateur'@'hote' | |
TABLE_CATALOG | NULL | |
TABLE_SCHEMA | ||
TABLE_NAME | ||
PRIVILEGE_TYPE | ||
IS_GRANTABLE | ||
WITH_HIERARCHY | omit | 
Les requêtes suivantes ne sont pas équivalentes :
SELECT ... FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES SHOW GRANTS ...
        PRIVILEGE_TYPE peut contenir l'une des
        valeurs suivantes : SELECT,
        INSERT, UPDATE,
        REFERENCES, ALTER,
        INDEX, DROP et
        CREATE VIEW.
      
        La table COLUMN_PRIVILEGES fournit les
        informations sur les droits reliés aux colonnes. Ces
        informations proviennent de la table de droits
        mysql.columns_priv.
      
| Nom standard | Nom SHOW | Remarques | 
GRANTOR | omis | |
GRANTEE | e.g. 'utilisateur'@'hote' | |
TABLE_CATALOG | NULL | |
TABLE_SCHEMA | ||
TABLE_NAME | ||
COLUMN_NAME | ||
PRIVILEGE_TYPE | ||
IS_GRANTABLE | 
Notes :
            Dans le résultat de SHOW FULL COLUMNS,
            les droits sont toujours affichés dans un champ, en
            minuscules, comme
            select,insert,update,references. Dans
            COLUMN_PRIVILEGES, il y a une ligne par
            droit, et la valeur est en majuscules.
          
            PRIVILEGE_TYPE peut contenir une et une
            seule de ces valeurs : SELECT,
            INSERT, UPDATE,
            REFERENCES.
          
            Si l'utilisateur a le droit de GRANT
            OPTION, le droit IS_GRANTABLE
            doit valoir YES. Sinon,
            IS_GRANTABLE doit valoir be
            NO. Le résultat ne présente pas
            GRANT OPTION comme une droit séparé.
          
Les commandes suivantes ne sont pas équivalents :
SELECT ... FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES SHOW GRANTS ...
        La table CHARACTER_SETS fournit des
        informations sur les jeux de caractères disponibles.
      
| Nom standard | Nom SHOW | Remarques | 
CHARACTER_SET_CATALOG | omis | |
CHARACTER_SET_SCHEMA | omis | |
CHARACTER_SET_NAME | Charset | |
CHARACTER_REPERTOIRE | omis | |
FORM_OF_USE | omis | |
NUMBER_OF_CHARACTERS | omis | |
DEFAULT_COLLATE_CATALOG | omis | |
DEFAULT_COLLATE_SCHEMA | omis | |
DEFAULT_COLLATE_NAME | Default collation | |
DESCRIPION | Description | Extension MySQL | 
MAXLEN | Maxlen | Extension MySQL | 
Notes :
            Nous avons ajouté 2 colonnes non standard qui sont
            Description et Maxlen,
            dans la commande SHOW CHARACTER SET.
          
Les commandes suivantes sont équivalentes :
SELECT * FROM INFORMATION_SCHEMA.CHARACTER_SETS [WHERE name LIKE 'wild'] SHOW CHARACTER SET [LIKE 'wild']
        La table COLLATIONS fournit des informations
        sur les collations de chaque jeu de caractères.
      
| Nom standard | Nom SHOW | Remarques | 
COLLATION_CATALOG | omis; | |
COLLATION_SCHEMA | omis; | |
COLLATION_NAME | Collation | |
PAD_ATTRIBUTE | omis; | |
COLLATION_TYPE | omis; | |
COLLATION_DEFINITION | omis; | |
COLLATION_DICTIONARY | omis; | |
CHARACTER_SET_NAME | omis; extension de MySQL | |
ID | omis; extension de MySQL | |
IS_DEFAULT | omis; extension de MySQL | |
IS_COMPILED | omis; extension de MySQL | |
SORTLEN | omis; extension de MySQL | 
Notes :
            Nous avons ajouté 5 colonnes non standard qui correspondent
            au Charset, Id,
            Default, Compiled et
            Sortlen dans le résultat de
            SHOW COLLATION.
          
Les commandes suivantes sont équivalentes :
SELECT COLLATION_NAME FROM INFORMATION_SCHEMA.COLLATIONS [WHERE collation_name LIKE 'wild'] SHOW COLLATION [LIKE 'wild']
        La table
        COLLATION_CHARACTER_SET_APPLICABILITY indique
        les jeux de caractères et les collations associées. Les
        colonnes sont équivalentes aux deux premières colonnes du
        résultat de la commande SHOW COLLATION.
      
| Nom standard | Nom SHOW | Remarques | 
COLLATION_CATALOG | omis | |
COLLATION_SCHEMA | omis | |
COLLATION_NAME | Collation | |
CHARACTER_SET_CATALOG | omis | |
CHARACTER_SET_SCHEMA | omis | |
CHARACTER_SET_NAME | Charset | 
        La table TABLE_CONSTRAINTS décrit les tables
        qui ont des contraintes.
      
| Nom standard | Nom SHOW | Remarques | 
CONSTRAINT_CATALOG | NULL | |
CONSTRAINT_SCHEMA | ||
CONSTRAINT_NAME | ||
TABLE_CATALOG | omit | |
TABLE_SCHEMA | ||
TABLE_NAME | ||
CONSTRAINT_TYPE | ||
IS_DEFERRABLE | omit | |
INITIALLY_DEFERRED | omit | 
Notes :
            La valeur CONSTRAINT_TYPE peut être
            UNIQUE, PRIMARY KEY ou
            FOREIGN KEY.
          
            Les informations de UNIQUE et
            PRIMARY KEY sont les mêmes que celles
            que vous obtenez dans le champ Key_name
            du résultat de SHOW INDEX où le champ
            Non_unique vaut 0.
          
            La colonne CONSTRAINT_TYPE peut contenir
            l'une de ces valeurs : UNIQUE,
            PRIMARY KEY, FOREIGN
            KEY, CHECK. C'est une colonne
            de type CHAR et non pas
            ENUM. La valeur de
            CHECK n'est pas valable jusqu'à ce que
            nous supportions CHECK.
          
        La table KEY_COLUMN_USAGE décrit les
        contraintes sur les colonnes.
      
| Nom standard | Nom SHOW | Remarques | 
CONSTRAINT_CATALOG | NULL | |
CONSTRAINT_SCHEMA | ||
CONSTRAINT_NAME | ||
TABLE_CATALOG | ||
TABLE_SCHEMA | ||
TABLE_NAME | ||
COLUMN_NAME | ||
ORDINAL_POSITION | ||
POSITION_IN_UNIQUE_CONSTRAINT | 
Notes :
Si la contrainte est une clé étrangère, alors c'est la colonne de la clé étrangère, et non pas la colonne que la clé étrangère référence.
            La valeur de ORDINAL_POSITION est la
            position de la colonne dans la contrainte, et non pas la
            position de la colonne dans la table. Les positions des
            colonnes commencent à 1.
          
            La valeur de
            POSITION_IN_UNIQUE_CONSTRAINT est
            NULL pour les contraintes unique et clé
            primaire. Pour les contraintes de clé étrangère, c'est la
            position ordinale dans la clé de la table qui est
            référencée.
          
            Par exemple, supposez que vous ayez les deux tables
            t1 et t3, avec les
            définitions suivantes :
          
CREATE TABLE t1
(
    s1 INT,
    s2 INT,
    s3 INT,
    PRIMARY KEY(s3)
) ENGINE=InnoDB;
CREATE TABLE t3
(
    s1 INT,
    s2 INT,
    s3 INT,
    KEY(s1),
    CONSTRAINT CO FOREIGN KEY (s2) REFERENCES t1(s3)
) ENGINE=InnoDB;
            Pour ces deux tables, la table
            KEY_COLUMN_USAGE a deux lignes :
          
                Une ligne avec
                CONSTRAINT_NAME='PRIMARY',
                TABLE_NAME='t1',
                COLUMN_NAME='s3',
                ORDINAL_POSITION=1,
                POSITION_IN_UNIQUE_CONSTRAINT=NULL.
              
                Une ligne avec CONSTRAINT_NAME='CO',
                TABLE_NAME='t3',
                COLUMN_NAME='s2',
                ORDINAL_POSITION=1,
                POSITION_IN_UNIQUE_CONSTRAINT=1.
              
        La table ROUTINES fournit des informations
        sur les procédures stockées (sur les procédures et les
        fonctions). La table ROUTINES n'inclut pas
        les fonctions utilisateurs (dites UDF)
        actuellement.
      
        La colonne appelée ``mysql.proc name''
        indique la colonne de la table mysql.proc qui
        correspond à la colonne de la table
        INFORMATION_SCHEMA.ROUTINES, si elle existe.
      
| Nom standard | Nom mysql.proc | Remarques | 
SPECIFIC_CATALOG | omis | |
SPECIFIC_SCHEMA | db | omis | 
SPECIFIC_NAME | specific_name | |
ROUTINE_CATALOG | NULL | |
ROUTINE_SCHEMA | db | |
ROUTINE_NAME | name | |
MODULE_CATALOG | omis | |
MODULE_SCHEMA | omis | |
MODULE_NAME | omis | |
USER_DEFINED_TYPE_CATALOG | omis | |
USER_DEFINED_TYPE_SCHEMA | omis | |
USER_DEFINED_TYPE_NAME | omis | |
ROUTINE_TYPE | type | {PROCEDURE|FUNCTION} | 
DTD_IDENTIFIER | (data type descriptor) | |
ROUTINE_BODY | SQL | |
ROUTINE_DEFINITION | body | |
EXTERNAL_NAME | NULL | |
EXTERNAL_LANGUAGE | language | NULL | 
PARAMETER_STYLE | SQL | |
IS_DETERMINISTIC | is_deterministic | |
SQL_DATA_ACCESS | sql_data_access | |
IS_NULL_CALL | omis | |
SQL_PATH | NULL | |
SCHEMA_LEVEL_ROUTINE | omis | |
MAX_DYNAMIC_RESULT_SETS | omis | |
IS_USER_DEFINED_CAST | omis | |
IS_IMPLICITLY_INVOCABLE | omis | |
SECURITY_TYPE | security_type | |
TO_SQL_SPECIFIC_CATALOG | omis | |
TO_SQL_SPECIFIC_SCHEMA | omis | |
TO_SQL_SPECIFIC_NAME | omis | |
AS_LOCATOR | omis | |
CREATED | created | |
LAST_ALTERED | modified | |
NEW_SAVEPOINT_LEVEL | omis | |
IS_UDT_DEPENDENT | omis | |
RESULT_CAST_FROM_DTD_IDENTIFIER | omis | |
RESULT_CAST_AS_LOCATOR | omis | |
SQL_MODE | sql_mode | extension MySQL | 
ROUTINE_COMMENT | comment | extension MySQL | 
DEFINER | definer | extension MySQL | 
Notes :
            MySQL calcule EXTERNAL_LANGUAGE comme
            suit :
          
                Si mysql.proc.language='SQL', alors
                EXTERNAL_LANGUAGE vaut
                NULL
              
                Sinon, EXTERNAL_LANGUAGE prend la
                valeur de mysql.proc.language.
                Cependant, nous n'avons pas de langage externe pour le
                momemnt, ce qui fait que cette valeur est toujours
                NULL.
              
        La table VIEWS fournit des informations sur
        les vues dans les bases.
      
| Nom standard | SHOW | Remarques | 
TABLE_CATALOG | NULL | |
TABLE_SCHEMA | ||
TABLE_NAME | ||
VIEW_DEFINITION | ||
CHECK_OPTION | ||
IS_UPDATABLE | ||
INSERTABLE_INTO | omit | 
Notes :
            Il existe un nouveau droit, SHOW VIEW,
            sans lequel vous ne pourrez pas voir la table
            VIEWS.
          
            La colonne VIEW_DEFINITION contient
            l'essentiel de ce que vous voyez dans le champ
            Create Table que la commande
            SHOW CREATE VIEW produit. Omettez les
            mots avant SELECT et omettez les mots
            après WITH CHECK OPTION. Par exemple, si
            la commande initiale était :
          
CREATE VIEW v AS SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1 WITH CHECK OPTION;
alors la définition de la vue est :
SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1
            La colonne CHECK_OPTION contient toujours
            la valeur NONE.
          
            La colonne IS_UPDATABLE vaut
            YES si la vue est modifiable, et
            NO dans le cas contraire.
          
      Plusieurs extensions de la SHOW accompagnent
      l'implémentation de la base
      INFORMATION_SCHEMA :
    
          SHOW peut être utilisé pour lire des
          informations sur la structure de la base
          INFORMATION_SCHEMA elle-même.
        
          Plusieurs commandes SHOW acceptent une
          clause WHERE qui fournit plus de souplesse
          pour spécifier les lignes à afficher.
        
Ces extensions sont disponibles depuis MySQL 5.0.3.
      INFORMATION_SCHEMA est une base de données
      d'informations, ce qui fait que son nom est inclus dans le
      résultat de SHOW DATABASES. Similairement,
      SHOW TABLES peut servir avec
      INFORMATION_SCHEMA pour lire la liste des
      tables dispnoibles :
    
mysql> SHOW TABLES FROM INFORMATION_SCHEMA;
+---------------------------------------+
| Tables_in_information_schema          |
+---------------------------------------+
| SCHEMATA                              |
| TABLES                                |
| COLUMNS                               |
| CHARACTER_SETS                        |
| COLLATIONS                            |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| ROUTINES                              |
| STATISTICS                            |
| VIEWS                                 |
| USER_PRIVILEGES                       |
| SCHEMA_PRIVILEGES                     |
| TABLE_PRIVILEGES                      |
| COLUMN_PRIVILEGES                     |
| TABLE_CONSTRAINTS                     |
| KEY_COLUMN_USAGE                      |
+---------------------------------------+
      SHOW COLUMNS and DESCRIBE
      can display information about the columns in individual
      INFORMATION_SCHEMA tables.
    
      Plusieurs commandes SHOW ont été étendues
      avec la clause WHERE :
    
SHOW CHARACTER SET SHOW COLLATION SHOW COLUMNS SHOW DATABASES SHOW FUNCTION STATUS SHOW KEYS SHOW OPEN TABLES SHOW PROCEDURE STATUS SHOW STATUS SHOW TABLE STATUS SHOW TABLES SHOW VARIABLES
      La clause WHERE, lorsqu'elle est disponible,
      utilise le nom des colonnes de l'affichage de la commande
      SHOW. Par exemple, la commande SHOW
      COLLATION produit ces colonnes :
    
mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
| dec8     | DEC West European           | dec8_swedish_ci     |      1 |
| cp850    | DOS West European           | cp850_general_ci    |      1 |
| hp8      | HP West European            | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |
| latin1   | ISO 8859-1 West European    | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 |
...
      Pour utiliser la clause WHERE avec la commande
      SHOW CHARACTER SET, il faut utiliser les noms
      de ces colonnes. Par exemple, la commande suivante affiche les
      informations sur les jeux de caractères dont ls collation par
      défaut contient la chaîne "japanese" :
    
mysql> SHOW CHARACTER SET WHERE `Default collation` LIKE '%japanese%';
+---------+---------------------------+---------------------+--------+
| Charset | Description               | Default collation   | Maxlen |
+---------+---------------------------+---------------------+--------+
| ujis    | EUC-JP Japanese           | ujis_japanese_ci    |      3 |
| sjis    | Shift-JIS Japanese        | sjis_japanese_ci    |      2 |
| cp932   | SJIS for Windows Japanese | cp932_japanese_ci   |      2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci |      3 |
+---------+---------------------------+---------------------+--------+
Cette commande affiche la liste des jeux de caractères multi-octets :
mysql> SHOW CHARACTER SET WHERE Maxlen > 1;
+---------+---------------------------+---------------------+--------+
| Charset | Description               | Default collation   | Maxlen |
+---------+---------------------------+---------------------+--------+
| big5    | Big5 Traditional Chinese  | big5_chinese_ci     |      2 |
| ujis    | EUC-JP Japanese           | ujis_japanese_ci    |      3 |
| sjis    | Shift-JIS Japanese        | sjis_japanese_ci    |      2 |
| euckr   | EUC-KR Korean             | euckr_korean_ci     |      2 |
| gb2312  | GB2312 Simplified Chinese | gb2312_chinese_ci   |      2 |
| gbk     | GBK Simplified Chinese    | gbk_chinese_ci      |      2 |
| utf8    | UTF-8 Unicode             | utf8_general_ci     |      3 |
| ucs2    | UCS-2 Unicode             | ucs2_general_ci     |      2 |
| cp932   | SJIS for Windows Japanese | cp932_japanese_ci   |      2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci |      3 |
+---------+---------------------------+---------------------+--------+
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.