Connexion
Connexion

Types de données MySQL: aperçu, exemples d’utilisation et bonnes pratiques

Types de données MySQL: aperçu, exemples d’utilisation et bonnes pratiques
Hostman Team
Technical writer
Service MySQL
19.01.2026
Reading time: 8 min

Lors de la configuration d’une base de données dans MySQL, l’utilisateur doit attribuer un nom et un type de données à chaque colonne d’une table. Ce processus permet au système de comprendre précisément quel type de données sera stocké et comment elles seront traitées, tout en déterminant la quantité de mémoire requise.

Il existe plusieurs grandes catégories de types de données dans les tables MySQL, notamment les types numériques, les types de caractères, les types de date et d’heure, ainsi que d’autres. Chaque catégorie contient plusieurs types de données spécifiques. Il est important de les définir correctement dès la phase initiale de création des tables afin d’éviter des problèmes une fois la structure complète de la base de données mise en place.

Cet article décrit les principaux types de données MySQL, leur structure, leurs valeurs valides et les recommandations d’utilisation.

Types numériques

MySQL prend en charge tous les types de données numériques SQL standard, utilisés pour stocker des nombres. Cet article couvre :

  • Les entiers

  • Les nombres à virgule flottante

  • Les nombres à virgule fixe

Chacun est décrit plus en détail ci-dessous.

Entiers

Les entiers sont utilisés pour stocker des nombres entiers signés ou non signés. Les types signés peuvent stocker des valeurs positives et négatives, tandis que les types non signés stockent uniquement des valeurs positives, ce qui double effectivement la plage de valeurs.

Il existe cinq principaux types d’entiers : TINYINT, SMALLINT, MEDIUMINT, INT et BIGINT. La principale différence réside dans la plage de valeurs qu’ils peuvent stocker : plus la plage est large, plus la mémoire requise est importante. Il est essentiel de choisir le type approprié afin d’optimiser l’utilisation de la mémoire lors de la création des tables.

Type

Mémoire (octets)

Plage signée

Plage non signée

TINYINT

1

−2⁷ à 2⁷−1

0 à 2⁸−1

SMALLINT

2

−2¹⁵ à 2¹⁵−1

0 à 2¹⁶−1

MEDIUMINT

3

−2²³ à 2²³−1

0 à 2²⁴−1

INT

4

−2³¹ à 2³¹−1

0 à 2³²−1

BIGINT

8

−2⁶³ à 2⁶³−1

0 à 2⁶⁴−1

La spécification d’une taille (par exemple MEDIUMINT(6)) n’affecte pas la plage de valeurs. Elle est purement esthétique et utilisée par certains outils pour compléter les nombres plus courts avec des espaces.

Vous pouvez également utiliser l’attribut ZEROFILL pour compléter avec des zéros au lieu d’espaces. Par exemple, SMALLINT(8) ZEROFILL affichera 256 sous la forme 00000256.

Nombres à virgule flottante

Ils sont utilisés pour stocker des valeurs numériques approximatives. MySQL permet de définir la précision de la manière suivante :

FLOAT(p)

Où p correspond à la précision, comprise entre 0 et 53.

  • Si p < 25, FLOAT (précision simple) est utilisé.

  • Sinon, DOUBLE (précision double) est utilisé.

Type

Mémoire (octets)

Plage de valeurs

FLOAT

4

~±3,4028 × 10³⁸

DOUBLE

8

~±1,7976 × 10³⁸

Nombres à virgule fixe

Ils sont utilisés pour stocker des valeurs exactes avec une précision définie. Les types DECIMAL ou NUMERIC sont utilisés, en particulier pour les calculs financiers où l’arrondi est inacceptable.

Définition :

DECIMAL(M, D)

  • M : nombre total de chiffres (jusqu’à 65 ; valeur par défaut 10)

  • D : nombre de chiffres après la virgule (0–30 ; valeur par défaut 0)

Exemple :

DECIMAL(6, 3)

Stocke des valeurs de -999.999 à 999.999.
DECIMAL et NUMERIC sont fonctionnellement équivalents.

Types de caractères

Conçus pour stocker des textes courts, les types de données de caractères dans MySQL incluent CHAR et VARCHAR. Ils sont similaires, mais diffèrent par la manière dont les données sont stockées et récupérées.

CHAR stocke une chaîne de longueur fixe (de 0 à 2⁸−1 caractères), définie lors de la création de la table. Si une chaîne plus courte est insérée, les caractères restants sont complétés par des espaces.

VARCHAR stocke une chaîne de longueur variable (de 0 à 2¹⁶−1 caractères). Contrairement à CHAR, il stocke uniquement le nombre réel de caractères et utilise 1 octet supplémentaire pour enregistrer la longueur de la chaîne.

Si la chaîne d’entrée dépasse la longueur définie pour CHAR ou VARCHAR, elle est tronquée.

Lors de la création de la table, si des colonnes CHAR et VARCHAR sont combinées, MySQL convertira automatiquement CHAR en VARCHAR.

Comparaison entre CHAR(5) et VARCHAR(5)

Chaîne

CHAR(5)

VARCHAR(5)

'A'

'A '

'A'

'Hello'

'Hello'

'Hello'

'Example'

'Examp'

'Examp'

Types TEXT et binaires

Le type TEXT est utilisé pour stocker de grandes quantités de texte, tandis que BLOB est conçu pour les données binaires telles que les images, le code compilé ou l’audio.

Principales différences :

  • BLOB : le tri et les comparaisons sont sensibles à la casse.

  • TEXT : le tri et les comparaisons ne sont pas sensibles à la casse.

MySQL ne peut pas indexer la longueur complète des champs TEXT ou BLOB et ne prend pas en charge le tri à l’aide d’index de champ complet.

Si la longueur de la chaîne dépasse la taille maximale autorisée, l’entrée est tronquée.

Types TEXT

Type

Mémoire (octets)

Caractères max.

TINYTEXT

2⁸−1

jusqu’à 2⁸−1

TEXT

2¹⁶−1

jusqu’à 2¹⁶−1

MEDIUMTEXT

2²⁴−1

jusqu’à 2²⁴−1

LONGTEXT

2³²−1

jusqu’à 2³²−1

Types BLOB

Type

Mémoire (octets)

Octets max.

TINYBLOB

2⁸−1

jusqu’à 2⁸−1

BLOB

2¹⁶−1

jusqu’à 2¹⁶−1

MEDIUMBLOB

2²⁴−1

jusqu’à 2²⁴−1

LONGBLOB

2³²−1

jusqu’à 2³²−1

Date et heure

MySQL fournit plusieurs types de données pour stocker des informations de date et d’heure :

Type

Mémoire (octets)

Description

DATE

3

Stocke uniquement la date au format YYYY-MM-DD.

DATETIME

8

Stocke la date et l’heure au format YYYY-MM-DD HH:MM:SS.

TIMESTAMP

4

Similaire à DATETIME, mais avec une plage plus limitée (1970–2038).

TIME

3

Stocke uniquement l’heure, de −838:59:59 à 838:59:59.

YEAR

1

Stocke uniquement l’année au format YYYY.

JSON

MySQL prend en charge un type de données JSON natif depuis la version 5.7.8, offrant les avantages suivants :

  • Validation automatique des données JSON.

  • Format de stockage binaire optimisé pour un accès et des requêtes plus rapides.

La mémoire requise est approximativement équivalente à LONGTEXT.

Types composites

MySQL propose des types de chaînes spéciaux qui stockent des valeurs à partir d’un ensemble fixe prédéfini : ENUM et SET.

  • ENUM stocke une seule valeur de la liste et utilise jusqu’à 2 octets de mémoire.

  • SET peut stocker jusqu’à 26 valeurs simultanément et utilise jusqu’à 8 octets de mémoire.

Exemple

ENUM('a', 's', 'd')

La colonne ne peut contenir qu’une seule des valeurs suivantes : 'a', 's' ou 'd'.

SET('a', 's', 'd')

La colonne peut contenir n’importe quelle combinaison des valeurs listées, notamment :
'a', 's', 'd', 'a,s', 'a,d', 's,d', 'a,s,d' ou un ensemble vide ('').

Si un utilisateur insère une valeur telle que ('a', 's', 'a') dans un SET, MySQL supprime automatiquement les doublons et trie les valeurs selon l’ordre de déclaration initial. La valeur stockée sera alors 'a,s'.

Conclusion

Cet article a présenté les types de données MySQL les plus couramment utilisés pour définir les colonnes des tables. Grâce à ces connaissances, les utilisateurs peuvent sélectionner les types appropriés et concevoir efficacement la structure de leur base de données. Pour des types de données plus détaillés et moins courants, veuillez consulter la documentation officielle de MySQL.

Vous pouvez utiliser les bases de données cloud Hostman pour vous entraîner à travailler avec MySQL et ses différents types de données. Les principaux avantages de l’utilisation de MySQL dans le cloud incluent:

  • Maintenance et configuration de la base de données par le fournisseur de services

  • Fiabilité élevée, haute disponibilité et tolérance aux pannes

  • Sauvegardes automatiques

  • Mise à l’échelle horizontale et verticale rapide

  • Fonctionnement continu grâce à la réplication en cluster

  • Exécution de la base de données sur les ressources de calcul d’une plateforme cloud

Service MySQL
19.01.2026
Reading time: 8 min

Similaire

Système Debian

Comment installer MySQL sur Debian

Installer MySQL sur Debian permet de créer une infrastructure de base de données (DB) robuste et flexible, compatible avec un large éventail d'applications et de services. Ce SGBD est reconnu pour sa scalabilité, sa fiabilité et sa robustesse. Une fois installé, il améliore l'efficacité opérationnelle et les performances globales de votre infrastructure de données. Cette solution est particulièrement avantageuse pour les administrateurs, analystes de bases de données et secteurs ayant besoin d'un système fiable pour gérer de grands volumes de données. En outre, les guides complets de MySQL et sa communauté active facilitent le dépannage et l'amélioration continue des opérations. Dans ce guide, nous présentons la procédure complète d'installation et de configuration de MySQL sur Debian. Comment installer MySQL sur Debian Les dépôts par défaut de Debian ne proposent pas le paquet du serveur MySQL. Pour l'installer sur un système Linux, suivez les instructions ci-dessous. Nous allons télécharger la version la plus récente de MySQL. Étape 1 : Télécharger le paquet MySQL Récupérez le fichier de configuration du dépôt MySQL au format .deb : wget https://dev.mysql.com/get/mysql-apt-config_0.8.30-1_all.deb Remarque : pour vérifier la dernière version, consultez le site du dépôt MySQL. Étape 2 : Installer le paquet de configuration MySQL Utilisez ensuite le fichier .deb pour lancer l'installation avec dpkg : sudo dpkg -i mysql-apt-config_0.8.30-1_all.deb Répondez aux invites. Par exemple, sélectionnez MySQL Server & Cluster puis appuyez sur Entrée pour lancer la configuration. Pour choisir une version (comme mysql-8.4-lts), défilez vers le bas et validez avec OK : Étape 3 : Mettre à jour le système Mettez à jour l'index des paquets pour prendre en compte les nouvelles infos MySQL : sudo apt update Étape 4 : Installer MySQL L'outil de gestion de paquets de Debian simplifie l'installation. Exécutez : sudo apt install mysql-server -y Une interface vous demandera de définir un mot de passe root. Choisissez un mot de passe sécurisé puis validez. Pour vérifier la version installée : mysql --version Étape 5 : Gérer les services Activez le lancement automatique de MySQL au démarrage : sudo systemctl enable mysql Démarrez le service : sudo systemctl start mysql Vérifiez son statut : sudo systemctl status mysql Avant d'ouvrir le port 3306 aux clients, consultez notre guide Créer un tunnel SSH pour MySQL afin d'apprendre à protéger l'accès via SSH plutôt que d'exposer directement MySQL sur Internet. Étape 6 : Sécuriser l'installation de MySQL Le mot de passe root défini au départ protège l'accès à l'utilisateur root. MySQL inclut aussi des défauts peu sécurisés (comme des utilisateurs anonymes ou l'accès distant root). Il est essentiel de renforcer la sécurité après l'installation. Pour cela, utilisez : sudo mysql_secure_installation Activez la validation des mots de passe (Y puis Entrée). Vous serez invité à configurer plusieurs options : Définissez un mot de passe fort pour l’utilisateur root et assurez-vous qu’il est correct. Configurez également la politique de mot de passe du serveur de base de données. Par exemple, tapez 2 pour n’autoriser que les mots de passe complexes, puis appuyez sur Entrée. Si l’on vous demande si vous souhaitez modifier le mot de passe root, tapez N pour le conserver, ou Y pour le modifier.   Il est recommandé d’éliminer les utilisateurs anonymes : pour cela, tapez Y puis appuyez sur Entrée.   Par mesure de sécurité, il est préférable de désactiver l’accès distant au compte root. Pour ce faire, tapez Y puis appuyez sur Entrée.   La base de données de test utilisée pour les essais peut être supprimée afin de renforcer la sécurité. Tapez Y et appuyez sur Entrée.   Enfin, actualisez les tables de privilèges pour appliquer immédiatement toutes les modifications. Appuyez sur Entrée. Étape 7 : Accéder à MySQL Utilisez l'utilitaire client mysql pour établir une connexion et accéder à la console du serveur de base de données. Accédez maintenant à l'interface shell et exécutez des instructions générales sur le serveur de base de données. Saisissez le nom d'utilisateur root ainsi que le mot de passe défini lors de l'installation sécurisée : sudo mysql -u root -p Étape 8 : Opérations de base avec MySQL Il est préférable de créer une base et un utilisateur distinct plutôt que d'utiliser root. Voici les commandes : Créer une base de données : Commencez par créer une base. Par exemple, pour créer hostmandb, utilisez : CREATE DATABASE hostmandb; Afficher toutes les bases : Listez toutes les bases pour confirmer que hostmandb a bien été créée : SHOW DATABASES; Créer un nouvel utilisateur : Créez un utilisateur et attribuez-lui un mot de passe fort. Dans cet exemple, nous utilisons Qwer@1234 pour l'utilisateur minhal. Adaptez ces valeurs selon vos besoins : CREATE USER 'minhal'@'localhost' IDENTIFIED BY 'Qwer@1234'; Attribuer les droits à l'utilisateur : Donnez un accès complet à hostmandb au nouvel utilisateur : GRANT ALL PRIVILEGES ON hostmandb.* TO 'minhal'@'localhost'; Appliquer les privilèges : Pour appliquer les modifications, rechargez les privilèges : FLUSH PRIVILEGES; Quitter la console : Pour fermer l'interface MySQL : EXIT; Accéder à la console MySQL avec l'utilisateur créé : Dans le but de tester l'accès à hostmandb, connectez-vous à MySQL en tant que nouvel utilisateur, dans notre cas minhal : sudo mysql -u minhal -p Vous accéderez à la console après avoir saisi le mot de passe de l'utilisateur minhal lorsqu'on vous le demandera. Pour vérifier, affichez toutes les bases et confirmez que hostmandb est bien présente : SHOW DATABASES; Étape 9 : Configurer l'accès distant Configurer le serveur pour permettre l’accessibilité à distance est nécessaire si un utilisateur doit accéder à MySQL depuis une machine externe. Suivez les étapes ci-dessous : Modifier le fichier de configuration : sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf Remplacer la ligne bind-address par : bind-address = 0.0.0.0 Redémarrer MySQL : sudo systemctl restart mysql Donner l'accès à distance à l'utilisateur : sudo mysql -u root -p GRANT ALL PRIVILEGES ON hostmandb.* TO 'minhal'@'localhost';FLUSH PRIVILEGES;EXIT; Étape 10 : Configurer le pare-feu Si votre pare-feu est activé, vous devez autoriser le trafic sur le port 3306 utilisé par MySQL. Configurez le pare-feu en suivant les étapes ci-dessous : Autoriser le port MySQL : sudo ufw allow mysql Activer UFW : sudo ufw enable Recharger UFW : sudo ufw reload Étape 11 : Sauvegarde et restauration Maintenir des sauvegardes régulières est essentiel pour éviter toute perte de données. MySQL fournit l’utilitaire mysqldump pour créer ces sauvegardes. Voici comment l’utiliser : Sauvegarder une base : Cette commande utilise mysqldump pour créer une sauvegarde de la base hostmandb dans un fichier nommé hostmandb_backup.sql : sudo mysqldump -u root -p hostmandb> hostmandb_backup.sql Sauvegarder toutes les bases : Pour sauvegarder l’ensemble des bases de données dans un fichier all_databases_backup.sql avec les privilèges root, utilisez : sudo mysqldump -u root -p --all-databases > all_databases_backup.sql Restaurer une base : Pour restaurer hostmandb à partir du fichier de sauvegarde : sudo mysql -u root -p hostmandb < hostmandb_backup.sql Étape 12 : Optimiser les performances (facultatif) Selon la charge de travail et les ressources du serveur, vous pouvez ajuster certains paramètres pour garantir des performances optimales. Ajuster la taille de InnoDB Buffer Pool : Le buffer pool InnoDB stocke les données et les index. En augmenter la taille peut améliorer significativement les performances. Pour cela, modifiez le fichier de configuration suivant : sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf Ajoutez ou modifiez la ligne suivante : innodb_buffer_pool_size = 1G Adaptez la valeur en fonction de la mémoire disponible sur votre serveur. Activer la cache des requêtes : La cache de requêtes enregistre les résultats des requêtes SELECT. L'activer peut améliorer les performances lors de requêtes répétitives. Pour cela, ajoutez ou modifiez ces lignes dans le même fichier .cnf : sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf query_cache_type = 1query_cache_size = 64M Optimiser la structure des tables : Il est conseillé d'optimiser régulièrement la table customers de la base hostmandb pour récupérer de l'espace perdu et améliorer l'efficacité : USE hostmandb;OPTIMIZE TABLE customers; Analyser les performances : Les performances des opérations MySQL peuvent être analysées à l'aide d'outils comme MySQL Workbench ou mysqltuner. Pour installer mysqltuner : sudo apt install mysqltuner Lancez ensuite l'outil pour obtenir des recommandations : sudo mysqltuner Conclusion Configurer un environnement MySQL est essentiel aujourd'hui. En suivant ce guide, vous pourrez installer et connecter votre base de données en toute sécurité. Cela renforce la sécurité, améliore la maintenance à distance et préserve la confidentialité des données. Cet article vous a fourni des instructions détaillées pour installer MySQL sur Debian. Il est recommandé de surveiller et d'optimiser régulièrement vos serveurs pour garantir des performances stables. Hostman propose également des bases de données cloud préconfigurées et prêtes à l'emploi, y compris MySQL dans le cloud.
16 July 2025 · 9 min to read

Avez-vous des questions,
des commentaires ou
des préoccupations ?

Nos professionnels sont disponibles pour vous aider à tout moment,
que vous ayez besoin d'aide ou que vous ne sachiez pas par où commencer.
Envoyez-nous un e-mail
Hostman's Support