MySQL : : Manuel de référence MySQL 8.0 : : 13.1.12 Déclaration CREATE DATABASE

13.1.12 Déclaration CREATE DATABASE

CREATE {DATABASE | SCHEMA} db_name ...create_option: { CHARACTER SET charset_name | COLLATE collation_name | ENCRYPTION {'Y' | 'N'}}

CREATE DATABASE crée une base de données avec le nom donné. Pour utiliser cette instruction, vous devez disposer du privilège CREATE pour la base de données. CREATE SCHEMA est un synonyme de CREATE DATABASE.

Une erreur se produit si la base de données existe et que vous n’avez pas spécifié IF NOT EXISTS.

CREATE DATABASE n’est pas autorisé dans une session qui a une déclaration LOCK TABLES active.

Chaque create_option spécifie une caractéristique de base de données. Les caractéristiques de la base de données sont stockées dans le dictionnaire de données.

  • L’option CHARACTER SET spécifie le jeu de caractères par défaut de la base de données. L’option COLLATE spécifie la collation par défaut de la base de données. Pour plus d’informations sur les noms des jeux de caractères et des collations, consultez le chapitre 10, Jeux de caractères, collations, Unicode.

    Pour voir les jeux de caractères et les collations disponibles, utilisez respectivement les instructions SHOW CHARACTER SET et SHOW COLLATION. Voir la section 13.7.7.3, « Déclaration SHOW CHARACTER SET », et la section 13.7.7.4, « Déclaration SHOW COLLATION ».

  • L’option ENCRYPTION, introduite dans MySQL 8.0.16, définit le chiffrement par défaut de la base de données, qui est hérité par les tables créées dans la base de données. Les valeurs autorisées sont 'Y' (cryptage activé) et 'N' (cryptage désactivé). Si l’option ENCRYPTION n’est pas spécifiée, la valeur de la variable système default_table_encryption définit le cryptage de la base de données par défaut. Si la variable système table_encryption_privilege_check est activée, le privilège TABLE_ENCRYPTION_ADMIN est nécessaire pour spécifier un paramètre de chiffrement par défaut différent du paramètre default_table_encryption. Pour plus d’informations, voir Définir un chiffrement par défaut pour les schémas et les tablespaces généraux.

Une base de données dans MySQL est implémentée comme un répertoire contenant des fichiers qui correspondent aux tables de la base de données. Comme il n’y a pas de tables dans une base de données lors de sa création initiale, l’instruction CREATE DATABASE crée uniquement un répertoire sous le répertoire de données MySQL. Les règles relatives aux noms de bases de données autorisés sont indiquées dans la Section 9.2, « Noms d’objets de schéma ». Si le nom d’une base de données contient des caractères spéciaux, le nom du répertoire de la base de données contient des versions codées de ces caractères, comme décrit dans la Section 9.2.4, « Mapping of Identifiers to File Names ».

La création d’un répertoire de base de données en créant manuellement un répertoire sous le répertoire de données (par exemple, avec mkdir) n’est pas prise en charge dans MySQL 8.0.

Lorsque vous créez une base de données, laissez le serveur gérer le répertoire et les fichiers qu’il contient. Manipuler directement les répertoires et les fichiers de la base de données peut provoquer des incohérences et des résultats inattendus.

MySQL n’a pas de limite sur le nombre de bases de données. Le système de fichiers sous-jacent peut avoir une limite sur le nombre de répertoires.

Vous pouvez également utiliser le programme mysqladmin pour créer des bases de données. Voir la section 4.5.2, « mysqladmin – un programme d’administration du serveur MySQL ».

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.