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)显示结果为010C'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. |