English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Types de données MySQL

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).

Types numériques

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.

typetailleplage (avec signe)plage (sans signe)utilité
TINYINT1 byte(-128,127)(0,255)valeur entière petite
SMALLINT2 octets(-32 768,32 767)(0,65 535)valeur entière grande
MEDIUMINT3  octets(-8 388 608,8 388 607)(0,16 777 215)valeur entière grande
INT ou INTEGER4  octets(-2 147 483 648,2 147 483 647)(0,4 294 967 295)valeur entière grande
BIGINT8  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
FLOAT4  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
DOUBLE8  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
DECIMALpour DECIMAL(M,D), si M>D, c'est M+2sinon D+2dépend de la valeur de M et Ddépend de la valeur de M et Dvaleur décimale

types de dates et de temps

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.

typetaille
(octets)
plageformatutilité
DATE31000-01-01/9999-12-31YYYY-MM-DDvaleur de date
TIME3'-838:59:59'/'838:59:59'HH:MM:SSvaleur de temps ou durée
YEAR11901/2155YYYYvaleur de l'année
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SSvaleurs mélangées de date et de temps
TIMESTAMP4

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 HHMMSSvaleurs mélangées de date et de temps, horodatage

types de chaînes de caractères

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.

typetailleutilité
CHAR0-255 octetschaîne de longueur fixe
VARCHAR0-65535 octetschaîne variable
TINYBLOB0-255 octetsne dépasse pas 255 chaîne binaire de caractères de longueur unitaire
TINYTEXT0-255 octetschaîne de caractères courte
BLOB0-65 535 octetstexte long en format binaire
TEXT0-65 535 octetstexte long
MEDIUMBLOB0-16 777 215 octetstexte de longueur moyenne en format binaire
MEDIUMTEXT0-16 777 215 octetstexte de longueur moyenne
LONGBLOB0-4 294 967 295 octetsDonnées textuelles massives sous forme binaire
LONGTEXT0-4 294 967 295 octetsDonné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.