13.1.11 Déclaration CREATE DATABASE
CREATE {DATABASE | SCHEMA} db_name ...create_option: { CHARACTER SET charset_name | COLLATE collation_name}
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 fichier db.opt
du répertoire de la base 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.5.3, “Déclaration SHOW CHARACTER SET”, et la section 13.7.5.4, “Déclaration SHOW COLLATION”.
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 lorsqu’elle est initialement créée, l’instruction CREATE DATABASE
crée uniquement un répertoire sous le répertoire de données MySQL et le fichier db.opt
. Les règles relatives aux noms de base 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”.
Si vous créez manuellement un répertoire sous le répertoire de données (par exemple, avec mkdir), le serveur le considère comme un répertoire de base de données et il apparaît dans la sortie de SHOW DATABASES
.
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”.