Les types de données
Les types de données en SQL
Les types de données en SQL définissent la nature des données qui peuvent être stockées dans les colonnes des tables. Chaque colonne d'une table SQL est associée à un type de données, ce qui permet d'assurer l'intégrité et la validité des informations stockées.
1. Types de données numériques
1.1. Entiers
Les types de données numériques entiers sont utilisés pour stocker des nombres sans partie décimale.
TINYINT : Entier de 1 octet, plage de -128 à 127 (ou 0 à 255 en UNSIGNED).
SMALLINT : Entier de 2 octets, plage de -32,768 à 32,767 (ou 0 à 65,535 en UNSIGNED).
MEDIUMINT : Entier de 3 octets, plage de -8,388,608 à 8,388,607 (ou 0 à 16,777,215 en UNSIGNED).
INT ou INTEGER : Entier de 4 octets, plage de -2,147,483,648 à 2,147,483,647 (ou 0 à 4,294,967,295 en UNSIGNED).
BIGINT : Entier de 8 octets, plage de -9,223,372,036,854,775,808 à 9,223,372,036,854,775,807 (ou 0 à 18,446,744,073,709,551,615 en UNSIGNED).
1.2. Flottants et nombres à virgule fixe
Les types de données flottants et décimaux permettent de stocker des nombres avec des parties fractionnaires.
FLOAT(M,D) : Nombre à virgule flottante sur 4 octets.
M
est le nombre total de chiffres, etD
est le nombre de chiffres après la virgule.DOUBLE(M,D) ou REAL : Nombre à virgule flottante sur 8 octets.
DECIMAL(M,D) ou NUMERIC(M,D) : Nombre à virgule fixe, stocké en tant que chaîne pour une précision exacte. Utilisé pour les valeurs monétaires ou les calculs précis.
2. Types de données chaînes de caractères
2.1. Types de longueur fixe
Les types de longueur fixe sont utiles pour les colonnes qui contiennent des données de longueur constante.
CHAR(N) : Chaîne de caractères de longueur fixe, avec un remplissage d'espaces si nécessaire. La taille maximale est de 255 caractères.
2.2. Types de longueur variable
Ces types sont plus flexibles et conviennent aux données dont la taille peut varier.
VARCHAR(N) : Chaîne de caractères de longueur variable, avec un maximum de
N
caractères (jusqu'à 65,535).
2.3. Types pour textes longs
Utilisés pour stocker de grandes quantités de texte.
TEXT : Chaîne de caractères de longueur variable, jusqu'à 65,535 caractères.
TINYTEXT : Texte de petite taille, jusqu'à 255 caractères.
MEDIUMTEXT : Texte de taille moyenne, jusqu'à 16,777,215 caractères.
LONGTEXT : Texte de grande taille, jusqu'à 4,294,967,295 caractères.
2.4. Types binaires (pour données non textuelles)
Les types binaires sont utilisés pour stocker des données brutes.
BINARY(N) : Données binaires de longueur fixe, similaire à
CHAR
.VARBINARY(N) : Données binaires de longueur variable, similaire à
VARCHAR
.BLOB : Stocke de grandes données binaires (Binary Large Object).
TINYBLOB : Données binaires jusqu'à 255 octets.
MEDIUMBLOB : Données binaires jusqu'à 16,777,215 octets.
LONGBLOB : Données binaires jusqu'à 4,294,967,295 octets.
3. Types de données date et heure
Les types de données date et heure permettent de stocker des informations temporelles.
DATE : Stocke une date au format
YYYY-MM-DD
. Plage :1000-01-01
à9999-12-31
.TIME : Stocke une heure au format
HH:MM:SS
. Plage :-838:59:59
à838:59:59
.DATETIME : Combinaison d'une date et d'une heure au format
YYYY-MM-DD HH:MM:SS
. Plage :1000-01-01 00:00:00
à9999-12-31 23:59:59
.TIMESTAMP : Représente un point dans le temps. Plage :
1970-01-01 00:00:01 UTC
à2038-01-19 03:14:07 UTC
. Utilisé souvent pour l'enregistrement des dates d'événements.YEAR : Représente une année au format
YYYY
. Plage :1901
à2155
.
4. Types de données booléens et de types spéciaux
4.1. Booléens
En SQL, il n'existe pas de type BOOLEAN
explicite dans certains SGBD. Cependant, il est souvent simulé avec des entiers.
BOOLEAN ou BOOL : Alias pour
TINYINT(1)
, où0
représenteFALSE
et1
représenteTRUE
.
4.2. Autres types spéciaux
ENUM('val1', 'val2', ...) : Type de données énuméré, utilisé pour limiter les valeurs possibles d'une colonne à un ensemble prédéfini.
SET('val1', 'val2', ...) : Similaire à
ENUM
, mais permet de stocker plusieurs valeurs parmi l'ensemble prédéfini.JSON : Utilisé pour stocker des objets JSON (non supporté dans toutes les bases de données).
UUID : Stocke des identifiants uniques universels (non supporté dans toutes les bases de données).
5. Comparaison des types de données entre différents SGBD
Les types de données peuvent varier légèrement entre les systèmes de gestion de bases de données. Voici quelques différences notables :
Type SQL Standard | MySQL | PostgreSQL | Microsoft SQL Server |
---|---|---|---|
INTEGER | INT | INTEGER | INT |
VARCHAR(N) | VARCHAR(N) | VARCHAR(N) | VARCHAR(N) |
BOOLEAN | TINYINT(1) | BOOLEAN | BIT |
DATE | DATE | DATE | DATE |
TIMESTAMP | TIMESTAMP | TIMESTAMP | DATETIME2 |
DECIMAL(M,D) | DECIMAL(M,D) | NUMERIC(M,D) | DECIMAL(M,D) |
Les types de données sont essentiels pour garantir l'intégrité des informations stockées dans une base de données. En choisissant le bon type de données pour chaque colonne, tu peux t'assurer que les données sont stockées de manière efficace, sécurisée et précise.
Last updated