English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Définir le type de champ des données dans MySQL est très important pour l'optimisation de votre base de données.
MySQL prend en charge de nombreux types, qui peuvent être divisés en trois catégories principales : numériques, date./Types de données temporelles et de chaînes (caractères).
MySQL prend en charge tous les types de données numériques standard SQL.
Ces types incluent les types de données numériques stricts (INTEGER, SMALLINT, DECIMAL et NUMERIC), ainsi que les types de données numériques approchées (FLOAT, REAL et DOUBLE PRECISION).
Le mot-clé INT est un synonyme de INTEGER, le mot-clé DEC est un synonyme de DECIMAL.
Le type BIT conserve les valeurs des champs binaire et prend en charge les tables MyISAM, MEMORY, InnoDB et BDB.
En tant qu'extension de la norme SQL, MySQL prend également en charge les types d'entiers TINYINT, MEDIUMINT et BIGINT. Le tableau suivant montre les tailles de stockage et les plages nécessaires pour chaque type d'entier nécessaire.
type | taille | plage (avec signe) | plage (sans signe) | utilité |
---|---|---|---|---|
TINYINT | 1 byte | (-128,127) | (0,255) | valeur entière petite |
SMALLINT | 2 octets | (-32 768,32 767) | (0,65 535) | valeur entière grande |
MEDIUMINT | 3 octets | (-8 388 608,8 388 607) | (0,16 777 215) | valeur entière grande |
INT ou INTEGER | 4 octets | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | valeur entière grande |
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) | valeur entière extrêmement grande |
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) | précision simple valeur 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 134 862 315 7 E+308) | double précision valeur flottante |
DECIMAL | pour DECIMAL(M,D), si M>D, c'est M+2sinon D+2 | dépend de la valeur de M et D | dépend de la valeur de M et D | valeur décimale |
Les types de dates et de temps qui représentent les valeurs de temps sont DATETIME, DATE, TIMESTAMP, TIME et YEAR.
Chaque type de temps a une plage de valeurs valides et une valeur "zéro", qui est utilisée lorsque des valeurs non légitimes que MySQL ne peut pas représenter sont spécifiées.
Le type TIMESTAMP a une caractéristique exclusive d'auto-mise à jour, qui sera décrite plus tard.
type | taille (octets) | plage | format | utilité |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | valeur de date |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | valeur de temps ou durée |
YEAR | 1 | 1901/2155 | YYYY | valeur de l'année |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | valeurs mélangées de date et de temps |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038 l'heure de fin est le 2147483647 seconde, heure de Beijing 2038-1-19 11:14:07, heure universelle 2038année1mois19matin 03:14:07 | YYYYMMDD HHMMSS | valeurs mélangées de date et de temps, horodatage |
Les types de chaînes de caractères sont CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM et SET. Cette section décrit comment ces types fonctionnent et comment ils sont utilisés dans les requêtes.
type | taille | utilité |
---|---|---|
CHAR | 0-255 octets | chaîne de longueur fixe |
VARCHAR | 0-65535 octets | chaîne variable |
TINYBLOB | 0-255 octets | ne dépasse pas 255 chaîne binaire de caractères de longueur unitaire |
TINYTEXT | 0-255 octets | chaîne de caractères courte |
BLOB | 0-65 535 octets | texte long en format binaire |
TEXT | 0-65 535 octets | texte long |
MEDIUMBLOB | 0-16 777 215 octets | texte de longueur moyenne en format binaire |
MEDIUMTEXT | 0-16 777 215 octets | texte de longueur moyenne |
LONGBLOB | 0-4 294 967 295 octets | Données textuelles massives sous forme binaire |
LONGTEXT | 0-4 294 967 295 octets | Données textuelles massives |
Attention:char(n) et varchar(n) dans les crochets, n représente le nombre de caractères et non le nombre d'octets, par exemple30) peut être stocké 30 caractères.
CHAR et VARCHAR sont similaires, mais leur manière de stocker et de récupérer sont différentes. Leur longueur maximale et s'ils conservent les espaces en fin de chaîne sont également différents. Aucune conversion de cas n'est effectuée pendant le stockage ou la récupération.
BINARY et VARBINARY sont similaires à CHAR et VARCHAR, mais contrairement à eux, ils contiennent des chaînes binaires au lieu de chaînes non binaires. Cela signifie qu'ils contiennent des chaînes d'octets au lieu de chaînes de caractères. Cela indique qu'ils n'ont pas de jeu de caractères, et le tri et la comparaison sont basés sur la valeur numérique des octets de la valeur de la colonne.
BLOB est un grand objet binaire qui peut contenir une quantité variable de données. Il y a 4 Il existe plusieurs types BLOB : TINYBLOB, BLOB, MEDIUMBLOB et LONGBLOB. Leur distinction réside dans la gamme de stockage qu'ils peuvent容纳.
Il y a 4 Il existe plusieurs types TEXT : TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT. Ils correspondent à 4 Il existe plusieurs types BLOB, la longueur maximale qu'ils peuvent stocker est différente et peut être sélectionnée en fonction de la situation réelle.