SQL Types de données pour diverses bases de données


Types de données et plages utilisés par Microsoft Access, MySQL et SQL Server.


Types de données Microsoft Access

Type de données Description Stockage
Texte Utilisé pour du texte ou des combinaisons de texte et de nombres. Maximum 255 caractères.
Mémo Mémo est utilisé pour de plus grandes quantités de texte. Stocke jusqu'à 65,536 caractères.Remarque :Les champs Mémo ne peuvent pas être triés. Toutefois, ils peuvent être recherchés.
Byte Autorise les nombres de 0 à 255. 1 octet
Integer Autorise tous les nombres compris entre -32,768 et 32,767. 2 octets
Long Autorise tous les nombres compris entre -2,147,483,648 et 2,147,483,647. 4 octets
Single Nombre à virgule flottante simple précision. Gère la plupart des nombres décimaux. 4 octets
Double Nombre à virgule flottante double précision. Gère la plupart des nombres décimaux. 8 octets
Currency Utilisé pour la devise. Prend en charge 15 chiffres pour les dollars, ainsi que 4 décimales.Astuce :Vous pouvez choisir la devise du pays à utiliser. 8 octets
AutoNumber Les champs NuméroAuto attribuent automatiquement un numéro à chaque enregistrement, en commençant généralement à 1. 4 octets
Date/Heure Utilisé pour les dates et les heures 8 octets
Oui/Non Champs logiques, peuvent s'afficher sous la forme Oui/Non, Vrai/Faux ou Activé/Désactivé. Dans le code, utilisez les constantes True et False (équivalentes à 1 et 0).Remarque :Les valeurs Null ne sont pas autorisées dans les champs Oui/Non 1 bit
Objet OLE Peut stocker des images, de l'audio, de la vidéo ou d'autres BLOBs (Binary Large OBjects). Jusqu'à 1GB
Lien hypertexte Contient des liens vers d'autres fichiers, y compris des pages web.
Assistant Recherche Permet de créer une liste d'options qui peut être sélectionnée dans une liste déroulante. 4 octets


Types de données MySQL

Dans MySQL, il existe trois types principaux : les types Texte, Nombre et Date/Heure.

Types de texte :

Type de données Description
CHAR(size) Contient une chaîne de longueur fixe (peut contenir des lettres, des chiffres et des caractères spéciaux). Spécifiez la longueur de la chaîne entre parenthèses. Jusqu'à 255 caractères.
VARCHAR(size) Contient une chaîne de longueur variable (peut contenir des lettres, des chiffres et des caractères spéciaux). Spécifiez la longueur maximale de la chaîne entre parenthèses. Jusqu'à 255 caractères.Remarque :Si la longueur de la valeur est supérieure à 255, elle est convertie en type TEXT.
TINYTEXT Stocke une chaîne d'une longueur maximale de 255 caractères.
TEXT Stocke une chaîne d'une longueur maximale de 65,535 caractères.
B Utilisé pour les BLOBs (Binary Large OBjects). Stocke jusqu'à 65,535 octets de données.
MEDIUMTEXT Stocke une chaîne d'une longueur maximale de 16,777,215 caractères.
MEDIUMBLOB Utilisé pour les BLOBs (Binary Large OBjects). Stocke jusqu'à 16,777,215 octets de données.
LONGTEXT Stocke une chaîne d'une longueur maximale de 4,294,967,295 caractères.
LONGBLOB Utilisé pour les BLOBs (Binary Large OBjects). Stocke jusqu'à 4,294,967,295 octets de données.
ENUM(x,y,z,etc.) Permet de saisir une liste de valeurs possibles. Vous pouvez lister jusqu'à 65,535 valeurs dans une liste ENUM. Si une valeur insérée n'existe pas dans la liste, une valeur nulle est insérée.

Remarque :Ces valeurs sont triées dans l'ordre dans lequel vous les saisissez.

Les valeurs possibles peuvent être saisies dans ce format : ENUM('X','Y','Z')

SET Semblable à ENUM, sauf que SET peut contenir au maximum 64 éléments de liste et SET peut stocker plus d'une sélection.

Types de nombres :

Type de données Description
TINYINT(size) Signé de -128 à 127, non signé de 0 à 255.
SMALLINT(size) Plage signée de -32768 à 32767, non signée de 0 à 65535, size a une valeur par défaut de 6.
MEDIUMINT(size) Plage signée de -8388608 à 8388607, la plage non signée est de 0 à 16777215. size a une valeur par défaut de 9.
INT(size) Plage signée de -2147483648 à 2147483647, la plage non signée est de 0 à 4294967295. size a une valeur par défaut de 11.
BIGINT(size) La plage signée est de -9223372036854775808 à 9223372036854775807, la plage non signée est de 0 à 18446744073709551615. size a une valeur par défaut de 20.
FLOAT(size,d) Petits nombres avec un point décimal flottant. Spécifiez le nombre maximal de chiffres d'affichage dans le paramètre size. Spécifiez le nombre maximal de chiffres à droite du point décimal dans le paramètre d.
DOUBLE(size,d) Nombres de grande taille avec un point décimal flottant. Spécifiez le nombre maximal de chiffres d'affichage dans le paramètre size. Spécifiez le nombre maximal de chiffres à droite du point décimal dans le paramètre d.
DECIMAL(size,d) Un type DOUBLE stocké sous forme de chaîne, permettant un point décimal fixe. Spécifiez le nombre maximal de chiffres d'affichage dans le paramètre size. Spécifiez le nombre maximal de chiffres à droite du point décimal dans le paramètre d.

Remarque :La taille mentionnée ci-dessus ne représente pas la longueur réelle stockée dans la base de données ; par exemple, int(4) ne signifie pas qu'il ne peut stocker que des nombres de 4 chiffres de longueur.

En fait, int(size) n'a rien à voir avec la quantité d'espace de stockage utilisée. int(3), int(4) et int(8) occupent tous 4 octets de stockage sur disque. À part une légère différence dans la façon dont ils sont affichés à l'utilisateur, int(M) est identique au type de données int.

Exemple :

1. valeur int 10 (avec zerofill spécifié)

int(9)显示结果为000000010
int(3)显示结果为010

C'est simplement que la longueur affichée est différente ; ils occupent tous quatre octets d'espace.

Types de date :

Type de données Description
DATE() Date. Format : YYYY-MM-DD

Remarque :La plage prise en charge va de '1000-01-01' à '9999-12-31'

DATETIME() *Une combinaison de date et d'heure. Format : YYYY-MM-DD HH:MM:SS

Remarque :La plage prise en charge va de '1000-01-01 00:00:00' à '9999-12-31 23:59:59'

TIMESTAMP() *Horodatage. Les valeurs TIMESTAMP sont stockées à l'aide du nombre de secondes depuis l'époque Unix ('1970-01-01 00:00:00' UTC). Format : YYYY-MM-DD HH:MM:SS

Remarque :La plage prise en charge va de '1970-01-01 00:00:01' UTC à '2038-01-09 03:14:07' UTC

TIME() Heure. Format : HH:MM:SS

Remarque :La plage prise en charge va de '-838:59:59' à '838:59:59'

YEAR() Année au format 2 chiffres ou 4 chiffres.

Remarque :Valeurs autorisées au format 4 chiffres : 1901 à 2155. Valeurs autorisées au format 2 chiffres : 70 à 69, représentant 1970 à 2069.

*Bien que DATETIME et TIMESTAMP renvoient le même format, ils fonctionnent très différemment. Dans les requêtes INSERT ou UPDATE, TIMESTAMP se définit automatiquement à la date et à l'heure actuelles. TIMESTAMP accepte également différents formats, tels que YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD ou YYMMDD.


Types de données SQL Server

Types de chaînes :

Type de données Description Stockage
char(n) Chaînes de longueur fixe. Jusqu'à 8,000 caractères. Largeur définie
varchar(n) Chaînes de longueur variable. Jusqu'à 8,000 caractères. 2 octets + nombre de caractères
varchar(max) Chaînes de longueur variable. Jusqu'à 1,073,741,824 caractères. 2 octets + nombre de caractères
text Chaînes de longueur variable. Jusqu'à 2GB de données textuelles. 4 octets + nombre de caractères
nchar Chaîne Unicode de longueur fixe. Jusqu’à 4,000 caractères. Largeur définie x 2
nvarchar Chaîne Unicode de longueur variable. Jusqu’à 4,000 caractères.
nvarchar(max) Chaîne Unicode de longueur variable. Jusqu’à 536,870,912 caractères.
ntext Chaîne Unicode de longueur variable. Jusqu’à 2GB de données texte.
bit Autorise 0, 1 ou NULL.
binary(n) Chaîne binaire de longueur fixe. Jusqu'à 8,000 octets.
varbinary Chaîne binaire de longueur variable. Jusqu'à 8,000 octets.
varbinary(max) Chaîne binaire de longueur variable. Jusqu'à 2GB.
image Chaîne binaire de longueur variable. Jusqu'à 2GB.

Types de nombres :

Type de données Description Stockage
tinyint Autorise tous les nombres de 0 à 255. 1 octet
smallint Autorise tous les nombres compris entre -32,768 et 32,767. 2 octets
int Autorise tous les nombres compris entre -2,147,483,648 et 2,147,483,647. 4 octets
bigint Autorise tous les nombres entre -9,223,372,036,854,775,808 et 9,223,372,036,854,775,807. 8 octets
decimal(p,s) Nombres à précision et échelle fixes.

Autorise les nombres entre -10^38 + 1 et 10^38 - 1.

Le paramètre p indique le nombre maximal de chiffres qui peuvent être stockés (à gauche et à droite du point décimal). p doit être une valeur de 1 à 38. La valeur par défaut est 18.

Le paramètre s indique le nombre maximal de chiffres stockés à droite de la virgule décimale. s doit être une valeur de 0 à p. La valeur par défaut est 0.

5-17 octets
numeric(p,s) Nombres à précision et échelle fixes.

Autorise les nombres entre -10^38 + 1 et 10^38 - 1.

Le paramètre p indique le nombre maximal de chiffres qui peuvent être stockés (à gauche et à droite du point décimal). p doit être une valeur de 1 à 38. La valeur par défaut est 18.

Le paramètre s indique le nombre maximal de chiffres stockés à droite de la virgule décimale. s doit être une valeur de 0 à p. La valeur par défaut est 0.

5-17 octets
smallmoney Données monétaires comprises entre -214,748.3648 et 214,748.3647. 4 octets
money Données monétaires comprises entre -922,337,203,685,477.5808 et 922,337,203,685,477.5807. 8 octets
float(n) Données numériques à précision flottante de -1.79E + 308 à 1.79E + 308.

Le paramètre n indique si le champ stocke 4 octets ou 8 octets. float(24) stocke 4 octets, tandis que float(53) stocke 8 octets. La valeur par défaut de n est 53.

4 ou 8 octets
real Données numériques à précision flottante de -3.40E + 38 à 3.40E + 38. 4 octets

Types de date :

Type de données Description Stockage
datetime Du 1er janvier 1753 au 31 décembre 9999, avec une précision de 3.33 millisecondes. 8 octets
datetime2 Du 1er janvier 1753 au 31 décembre 9999, avec une précision de 100 nanosecondes. 6-8 octets
smalldatetime Du 1er janvier 1900 au 6 juin 2079, avec une précision de 1 minute. 4 octets
date Stocke uniquement la date. Du 1er janvier 0001 au 31 décembre 9999. 3 octets
time Stocke uniquement l'heure. Précision de 100 nanosecondes. 3-5 octets
datetimeoffset Identique à datetime2, plus un décalage de fuseau horaire. 8-10 octets
timestamp Stocke un nombre unique qui est mis à jour chaque fois qu'une ligne est créée ou modifiée. La valeur timestamp est basée sur une horloge interne et ne correspond pas au temps réel. Chaque table peut avoir une seule variable timestamp.  

Autres types de données :

Type de données Description
sql_variant Stocke jusqu’à 8,000 bytes de données de différents types de données, à l’exception de text, ntext et timestamp.
uniqueidentifier Stocke un identificateur unique global (GUID).
xml Stocke des données au format XML. Jusqu’à 2GB.
cursor Stocke une référence à un pointeur utilisé pour les opérations de base de données.
table Stocke un ensemble de résultats pour un traitement ultérieur.
Autres extensions