CREATE DATABASE – Créer une base de données
Bonne lecture et bon apprentissage !
Junior TSAFACK – 08/08/2026
⏱️ Temps de lecture estimé : 4 minutes
La création d’une base de données en SQL est possible en ligne de commande. Même si les systèmes de gestion de base de données (SGBD) sont souvent utilisés via des interfaces graphiques pour créer une base, il convient de connaître la commande à utiliser, qui est très simple.
Bon à savoir : Dans le standard SQL, la commande
CREATE DATABASEn’existe pas en tant que telle. Elle est propre à chaque SGBD. Les syntaxes peuvent varier légèrement, mais l’idée générale reste la même.
Syntaxe de base
Section titled “Syntaxe de base”Pour créer une base de données qui sera appelée ma_base, il suffit d’utiliser la requête suivante :
CREATE DATABASE ma_base;Gérer le cas où la base existe déjà
Section titled “Gérer le cas où la base existe déjà”Avec MySQL, si une base de données porte déjà ce nom, la requête retournera une erreur. Pour éviter d’avoir cette erreur, il convient d’utiliser la clause IF NOT EXISTS :
CREATE DATABASE IF NOT EXISTS ma_base;L’option IF NOT EXISTS permet de ne pas retourner d’erreur si une base du même nom existe déjà. La base de données ne sera pas écrasée.
Attention : Dans PostgreSQL, la syntaxe est légèrement différente : on utilise
CREATE DATABASE ma_base;sansIF NOT EXISTS(cette clause n’est pas supportée). Il faut d’abord vérifier l’existence ou gérer l’erreur dans le code applicatif.
Options de création
Section titled “Options de création”Selon le SGBD, il est possible de définir des options supplémentaires lors de la création d’une base de données.
MySQL / MariaDB
Section titled “MySQL / MariaDB”On peut spécifier le jeu de caractères (CHARACTER SET) et la collation (COLLATE) :
CREATE DATABASE ma_baseCHARACTER SET utf8mb4COLLATE utf8mb4_unicode_ci;PostgreSQL
Section titled “PostgreSQL”PostgreSQL permet de définir l’encodage (ENCODING), la localisation (LC_COLLATE, LC_CTYPE) et le propriétaire (OWNER) :
CREATE DATABASE ma_baseENCODING 'UTF8'LC_COLLATE 'fr_FR.UTF-8'LC_CTYPE 'fr_FR.UTF-8'OWNER mon_utilisateur;Bon à savoir : PostgreSQL ne supporte pas
IF NOT EXISTSpourCREATE DATABASE. Il faut gérer l’erreur en amont.
SQL Server
Section titled “SQL Server”SQL Server permet de spécifier des options comme la taille initiale des fichiers, la croissance automatique, etc. :
CREATE DATABASE ma_baseON PRIMARY(NAME = ma_base_data, FILENAME = 'C:\data\ma_base.mdf', SIZE = 10MB, MAXSIZE = 100MB, FILEGROWTH = 5MB)LOG ON(NAME = ma_base_log, FILENAME = 'C:\data\ma_base.ldf', SIZE = 5MB, MAXSIZE = 50MB, FILEGROWTH = 5MB);Oracle
Section titled “Oracle”Oracle utilise plutôt CREATE USER pour créer un schéma (qui est l’équivalent d’une base de données dans d’autres SGBD) :
CREATE USER ma_base IDENTIFIED BY mot_de_passeDEFAULT TABLESPACE usersQUOTA 100M ON users;Exemple concret
Section titled “Exemple concret”Création d’une base de données boutique avec le jeu de caractères UTF-8 :
CREATE DATABASE boutiqueCHARACTER SET utf8mb4COLLATE utf8mb4_unicode_ci;PostgreSQL
Section titled “PostgreSQL”Création d’une base de données boutique avec encodage UTF-8 et propriétaire admin :
CREATE DATABASE boutiqueENCODING 'UTF8'OWNER admin;Vérifier la création
Section titled “Vérifier la création”Après la création, vous pouvez lister les bases de données existantes avec :
-- MySQL / MariaDBSHOW DATABASES;
-- PostgreSQL\l
-- SQL ServerSELECT name FROM sys.databases;
-- OracleSELECT username FROM all_users;Compatibilité entre SGBD
Section titled “Compatibilité entre SGBD”| SGBD | Syntaxe de base | IF NOT EXISTS | Options courantes |
|---|---|---|---|
| MySQL / MariaDB | CREATE DATABASE nom; |
Oui | CHARACTER SET, COLLATE |
| PostgreSQL | CREATE DATABASE nom; |
Non | ENCODING, LC_COLLATE, OWNER |
| SQL Server | CREATE DATABASE nom; |
Non | Taille des fichiers, croissance |
| Oracle | CREATE USER nom IDENTIFIED BY mdp; (schéma) |
Non | Tablespace, quota |
Remarque : En Oracle, une base de données est une instance physique qui peut contenir plusieurs schémas (équivalents à des bases de données logiques). La commande
CREATE USERcrée un schéma associé à un utilisateur.
Bonnes pratiques
Section titled “Bonnes pratiques”-
Choisissez un nom explicite pour la base de données, en lien avec son usage (ex:
boutique,rh,logs). -
Définissez le jeu de caractères dès la création pour éviter les problèmes d’encodage ultérieurs (préférez
utf8mb4pour MySQL,UTF8pour PostgreSQL). -
Utilisez
IF NOT EXISTSlorsque vous exécutez des scripts qui peuvent être relancés (MySQL uniquement). -
Gérez les permissions : dans la plupart des SGBD, la création d’une base nécessite des droits d’administration. Assurez-vous d’avoir les privilèges nécessaires (
CREATE DATABASEsous MySQL,CREATEDBsous PostgreSQL, etc.). -
Planifiez l’espace disque : pour SQL Server et Oracle, prévoyez la taille des fichiers de données et de journal.
-
Séparez les environnements : utilisez des bases différentes pour le développement, les tests et la production.
Erreurs courantes
Section titled “Erreurs courantes”| Erreur | Cause | Solution |
|---|---|---|
Access denied for user |
Privilèges insuffisants | Vérifier les droits de l’utilisateur |
Database already exists |
La base existe déjà (sans IF NOT EXISTS) |
Ajouter IF NOT EXISTS ou vérifier avant |
Invalid character set |
Jeu de caractères non supporté | Vérifier les jeux de caractères disponibles |
Permission denied |
Pas de droit d’écriture sur le répertoire | Vérifier les permissions du système de fichiers |
Prochain chapitre
Section titled “Prochain chapitre”Vous savez désormais comment créer une base de données. Mais que faire si vous souhaitez la supprimer définitivement ?
👉 Chapitre 27 : DROP DATABASE – Supprimer une base
Bonne continuation !
Junior TSAFACK – 08/08/2026