Skip to content

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 DATABASE n’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.


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;

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; sans IF 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.


Selon le SGBD, il est possible de définir des options supplémentaires lors de la création d’une base de données.

On peut spécifier le jeu de caractères (CHARACTER SET) et la collation (COLLATE) :

CREATE DATABASE ma_base
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

PostgreSQL permet de définir l’encodage (ENCODING), la localisation (LC_COLLATE, LC_CTYPE) et le propriétaire (OWNER) :

CREATE DATABASE ma_base
ENCODING 'UTF8'
LC_COLLATE 'fr_FR.UTF-8'
LC_CTYPE 'fr_FR.UTF-8'
OWNER mon_utilisateur;

Bon à savoir : PostgreSQL ne supporte pas IF NOT EXISTS pour CREATE DATABASE. Il faut gérer l’erreur en amont.

SQL Server permet de spécifier des options comme la taille initiale des fichiers, la croissance automatique, etc. :

CREATE DATABASE ma_base
ON 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 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_passe
DEFAULT TABLESPACE users
QUOTA 100M ON users;

Création d’une base de données boutique avec le jeu de caractères UTF-8 :

CREATE DATABASE boutique
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

Création d’une base de données boutique avec encodage UTF-8 et propriétaire admin :

CREATE DATABASE boutique
ENCODING 'UTF8'
OWNER admin;

Après la création, vous pouvez lister les bases de données existantes avec :

-- MySQL / MariaDB
SHOW DATABASES;
-- PostgreSQL
\l
-- SQL Server
SELECT name FROM sys.databases;
-- Oracle
SELECT username FROM all_users;

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 USER crée un schéma associé à un utilisateur.


  1. Choisissez un nom explicite pour la base de données, en lien avec son usage (ex: boutique, rh, logs).

  2. Définissez le jeu de caractères dès la création pour éviter les problèmes d’encodage ultérieurs (préférez utf8mb4 pour MySQL, UTF8 pour PostgreSQL).

  3. Utilisez IF NOT EXISTS lorsque vous exécutez des scripts qui peuvent être relancés (MySQL uniquement).

  4. 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 DATABASE sous MySQL, CREATEDB sous PostgreSQL, etc.).

  5. Planifiez l’espace disque : pour SQL Server et Oracle, prévoyez la taille des fichiers de données et de journal.

  6. Séparez les environnements : utilisez des bases différentes pour le développement, les tests et la production.


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

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