Les types de données dans MySQL : principes et exemples pratiques

Introduction aux types de données

Le moteur de stockage influence la structrue des tables, et chaque colonne doit utiliser un type de données approprié. Ces types définissent la nature des valeurs stockées, leur taille et leur précision. Bien que la largeur soit souvent optionnelle, elle peut affecter l'affichage.

Aperçu des types courants

  • Numériques : entiers (TINYINT, INT, BIGINT) et décimaux (FLOAT, DOUBLE, DECIMAL).
  • Chaînes de caractères : CHAR (longueur fixe) et VARCHAR (longueur varible).
  • Dates et heures : DATE, TIME, DATETIME, TIMESTAMP.
  • Énumérations et ensembles : ENUM pour une sélection unique, SET pour des sélections multiples.

Types numériques

Types entiers

Ces types stockent des valeurs entières sans décimales. Par exemple, TINYINT occupe 1 octet et INT 4 octets. Ils supportent les versions signées et non signées.

CREATE TABLE donnees_entieres (
    identifiant INT UNSIGNED,
    niveau TINYINT SIGNED,
    quantite BIGINT
);

INSERT INTO donnees_entieres (identifiant, niveau, quantite) VALUES (101, -5, 9876543210);

Lors de l'insertion, les valeurs hors plage sont ajustées aux limites maximales ou minmiales.

Types flottants et décimaux

Pour les nombres décimaux, FLOAT et DOUBLE offrent une précision approximative, tandis que DECIMAL garantit une exactitude parfaite en interne sous forme de chaîne.

CREATE TABLE mesures_decimales (
    temperature FLOAT(10,2),
    distance DOUBLE(15,5),
    prix DECIMAL(20,2)
);

INSERT INTO mesures_decimales VALUES (25.123, 12345.67891, 99.99);

DECIMAL est recommandé pour les calculs financiers où la précision est critique.

Types de date et heure

Ces types gèrent les données temporelles. DATETIME couvre une plage large, tandis que TIMESTAMP est lié au fuseau horaire et utilise moins d'espace.

CREATE TABLE evenements (
    date_creation DATETIME,
    horodatage TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO evenements (date_creation) VALUES ('2023-01-15 10:30:00');

Lors de l'insertion de dates à deux chiffres, les valeurs inférieures à 70 sont interprétées comme 20xx, et les autres comme 19xx.

Types de chaînes de caractères

CHAR et VARCHAR

CHAR stocke des chaînes de longueur fixe, en complétant avec des espaces si nécessaire. VARCHAR conserve la longueur exacte avec un préfixe pour indiquer la taille.

CREATE TABLE descriptions (
    code CHAR(10),
    libelle VARCHAR(100)
);

INSERT INTO descriptions VALUES ('ABC', 'Texte long avec espaces  ');

Pour les textes très longs, il est conseillé d'utiliser des types TEXT ou de stocker des chemins de fichiers.

Types d'énumération et d'ensemble

ENUM permet de choisir une seule valeur parmi une liste prédéfinie, comme un genre : 'masculin' ou 'féminin'. SET autorise plusieurs sélections.

CREATE TABLE preferences (
    statut ENUM('actif', 'inactif', 'suspendu'),
    interets SET('sport', 'musique', 'lecture', 'voyage')
);

INSERT INTO preferences VALUES ('actif', 'sport,musique');

Étiquettes: MySQL types de données SQL base de données types entiers

Publié le 14 juin à 20h32