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');