Types de données MySQL
Types de données MySQL
Les types de champs de données définis dans MySQL sont très importants pour l'optimisation de votre base de données.
MySQL prend en charge plusieurs types, qui peuvent être grossièrement divisés en trois catégories : les types numériques, date/heure et chaîne (caractère).
Pour plus de détails sur les types de données spécifiques de MySQL, veuillez consulter le didacticiel vidéo : Guide de développement faisant autorité MySQL (tutoriel)
Type numérique
MySQL prend en charge tous les types de données numériques SQL standard.
Ces types incluent des types de données numériques strictes (INTEGER, SMALLINT, DECIMAL et NUMERIC) et des types de données numériques approximatives (FLOAT, REAL et DOUBLE PRECISION).
Le mot-clé INT est synonyme de INTEGER, et le mot-clé DEC est synonyme de DECIMAL.
Le type de données BIT stocke les valeurs des champs de bits et prend en charge les tables MyISAM, MEMORY, InnoDB et BDB.
En tant qu'extension du standard SQL, MySQL prend également en charge les types entiers TINYINT, MEDIUMINT et BIGINT. Le tableau suivant montre le stockage et la plage requis pour chaque type entier.
Type | Taille | Plage (signée) | Plage (non signée) | Objectif |
---|---|---|---|---|
TINYINT | 1 octet | (-128, 127) | (0, 255) | Petite valeur entière |
SMALLINT | 2 octets | (-32 768, 32 767) | (0, 65 535) | Grande valeur entière |
MEDIUMINT | 3 octets | (-8 388 608, 8 388 607) | ( 0, 16 777 215) | Grande valeur entière |
INT ou INTEGER | 4 octets | (-2 147 483 648 , 2 147 483 647) | (0, 4 294 967 295) | Grande valeur entière |
BIGINT | 8 octets | (-9,223,372,036,854,775,808, 9 223 372 036 854 775 807) | (0, 18 446 744 073 709 551 615) | Grand Inte valeur ger |
FLOAT | 4 octets | (-3.402 823 466 E+38, -1.175 494 351 E-38), 0, (1.175 494 351 E-38, 3.402 823 466 351 E+38) | 0, (1.175 494 351 E-38, 3.402 823 466 E+38) | Simple précision Valeur à virgule flottante |
DOUBLE | 8 octets | (-1.797 693 134 862 315 7 E+308, -2.225 073 858 507 201 4 E -308), 0, (2.225 073 858 507 201 4 E-308, 1.797 693 134 862 315 7 E+308) | 0, (2.225 073 858 507 201 4 E-308, 1.797 693 1 34 862 315 7 E+308) | Double précision Valeur à virgule flottante |
DECIMAL | pour DECIMAL(M,D), si M> ;D, est M+2 sinon D+2 | Dépend de la valeur de M et D | Dépend de la valeur de M et D | Valeur décimale |
Types de date et d'heure
Les types de date et d'heure représentant les valeurs d'heure sont DATETIME, DATE, TIMESTAMP, TIME et YEAR.
Chaque type d'heure a une plage de valeurs valide et une valeur "zéro". La valeur "zéro" est utilisée lors de la spécification d'une valeur illégale que MySQL ne peut pas représenter.
Le type TIMESTAMP possède des fonctionnalités propriétaires de mise à jour automatique, qui seront décrites plus tard.
Type | Taille
| plage | format < /th> | Objectif | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | AAAA-MM-JJ | Date valeur | ||||||||||||||||||||||||||||||
TIME | 3 | '- 838 :59:59'/'838:59:59' | HH:MM:SS | Valeur temporelle ou durée | ||||||||||||||||||||||||||||||
ANNÉE | 1< /td > | 1901/2155 | AAAA | Valeur de l'année | ||||||||||||||||||||||||||||||
DATETIME | 8 | 1000-01-01 00:00:00/9999 -12 -31 23:59:59 | AAAA-MM-JJ HH:MM:SS td> | Valeurs de date et d'heure mixtes | ||||||||||||||||||||||||||||||
TIMESTAMP | 4< /td > | <🎜>1970-01-01 00:00:00/2038<🎜><🎜>Fin du temps est <🎜>2147483647<🎜> seconde, heure de Pékin <🎜>2038-1-19 11:14:07<🎜>, GMT 03:14:07 le 19 janvier 2038<🎜> td> | AAAAMMJJ HHMMSS | Valeurs de date et d'heure mixtes, horodatages |
Type de chaîne
Le type de chaîne fait référence à CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM et ENSEMBLE. Cette section décrit le fonctionnement de ces types et comment les utiliser dans les requêtes.
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255字节 | 定长字符串 |
VARCHAR | 0-65535 字节 | 变长字符串 |
TINYBLOB | 0-255字节 | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255字节 | 短文本字符串 |
BLOB | 0-65 535字节 | 二进制形式的长文本数据 |
TEXT | 0-65 535字节 | 长文本数据 |
MEDIUMBLOB | 0-16 777 215字节 | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295字节 | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295字节 | 极大文本数据 |
Les types CHAR et VARCHAR sont similaires, mais ils sont enregistrés et récupérés différemment. Ils diffèrent également en termes de longueur maximale et de préservation ou non des espaces de fin. Aucune conversion de cas n'est effectuée pendant le stockage ou la récupération.
BINARY et VARBINARY sont similaires à CHAR et VARCHAR, sauf qu'ils contiennent des chaînes binaires au lieu de chaînes non binaires. Autrement dit, ils contiennent des chaînes d'octets plutôt que des chaînes de caractères. Cela signifie qu'ils n'ont pas de jeu de caractères et que le tri et la comparaison sont basés sur la valeur numérique des octets de valeur de colonne.
Un BLOB est un gros objet binaire qui peut contenir une quantité variable de données. Il existe 4 types de BLOB : TINYBLOB, BLOB, MEDIUMBLOB et LONGBLOB. Ils diffèrent par la plage de stockage qu’ils peuvent accueillir.
Il existe 4 types de TEXTE : TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT. Les quatre types BLOB correspondants ont des longueurs de stockage maximales différentes, qui peuvent être sélectionnées en fonction de la situation réelle.
Plus de recommandations de didacticiels : Tutoriel vidéo MySQL