Cet article vous apporte une introduction détaillée aux types de données pris en charge par Mysql. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
1. Types numériques
Mysql prend en charge tous les types numériques dans le SQL standard, y compris les types de données stricts (INTEGER, SMALLINT, DECIMAL, NUMBERIC) et les valeurs numériques approximatives. tapez (FLOAT, REAL, DOUBLE PRESISION), et développez sur cette base. (Cours recommandé : Tutoriel MySQL)
a été étendu pour ajouter trois entiers de longueurs différentes : TINYINT, MEDIUMINT et BIGINT, ainsi qu'un type BIT pour stocker les données binaires.
Type entier Plage d'octets (signé) Plage (non signée) Utilisation
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 233 372 036 854 775 808, 9 223 372 036 854 775 807) (0, 18 446 744 073 709 551 615) Valeur entière maximale
FLOAT 4 octets (-3.402 8 23 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) valeur à virgule flottante simple précision
DOUBLE 8 octets (1,797 ( 2.225 073 858 507 201 4 E-308, 1.797 693 134 862 315 7 E+308) Valeur à virgule flottante double précision
DECIMAL à DECIMAL(M,D), si M>D, est M+2 sinon D+2 Dépend sur les valeurs de M et D Dépend des valeurs de M et D Valeur décimale
INT Type :
Les 5 principaux types d'entiers supportés dans MySQL sont TINYINT, SMALLINT, MEDIUMINT , INT et BIGINT. Ces types sont en grande partie les mêmes, seule la taille des valeurs qu'ils stockent diffère.
MySQL étend la norme SQL sous la forme d'un indicateur de largeur d'affichage facultatif afin que lorsqu'une valeur est récupérée de la base de données, la valeur puisse être allongée jusqu'à une longueur spécifiée. Par exemple, en spécifiant que le type d'un champ est INT(6),
garantira que les valeurs contenant moins de 6 chiffres seront automatiquement complétées par des espaces lors de leur récupération dans la base de données. Notez que l'utilisation d'un indicateur de largeur n'affecte pas la taille du champ ni la plage de valeurs qu'il peut stocker.
Dans le cas où nous devons stocker un nombre dans un champ qui dépasse la plage autorisée, MySQL le tronquera en fonction de la fin de la plage autorisée la plus proche avant de le stocker. Une autre particularité est que
MySQL changera automatiquement la valeur illégale à 0 avant de l'insérer dans la table.
Le modificateur UNSIGNED précise que le champ ne contient que des valeurs positives. Puisqu'il n'est pas nécessaire de sauvegarder les signes positifs et négatifs des nombres, un "bit" d'espace peut être économisé pendant le stockage. Cela augmente la plage de valeurs que ce champ peut stocker.
Le modificateur ZEROFILL spécifie que 0 (et non des espaces) peut être utilisé pour compléter la valeur de sortie. Utilisez ce modificateur pour empêcher la base de données MySQL de stocker des valeurs négatives.
Types FLOAT, DOUBLE et DECIMAL
Les trois types à virgule flottante pris en charge par MySQL sont les types FLOAT, DOUBLE et DECIMAL. Le type numérique FLOAT est utilisé pour représenter des valeurs à virgule flottante simple précision, et le type numérique DOUBLE est utilisé pour représenter des valeurs à virgule flottante double précision.
Comme les entiers, ces types prennent également des paramètres supplémentaires : un indicateur de largeur d'affichage et un indicateur de point décimal. Par exemple, l'instruction FLOAT(7,3) précise que la valeur affichée ne dépassera pas 7 chiffres, avec 3 chiffres après la virgule décimale.
Pour une valeur avec plus de chiffres après la virgule décimale que la plage autorisée, MySQL l'arrondira automatiquement à la valeur la plus proche avant de l'insérer.
Le type de données DECIMAL est utilisé dans les calculs qui nécessitent une très haute précision. Ce type permet de spécifier la précision et la méthode de comptage de la valeur comme paramètres de sélection. La précision fait ici référence au nombre total de chiffres significatifs enregistrés pour cette valeur,
tandis que la méthode de comptage indique le nombre de chiffres après la virgule décimale. Par exemple, l'instruction DECIMAL(7,3) spécifie que la valeur stockée ne dépassera pas 7 chiffres et ne dépassera pas 3 chiffres après la virgule décimale.
L'omission des modificateurs de précision et de méthode de comptage du type de données DECIMAL entraînera la base de données MySQL à définir la précision sur 10 et la méthode de comptage à 0 pour tous les champs identifiés comme ce type de données.
Les modificateurs UNSIGNED et ZEROFILL peuvent également être utilisés avec les types de données FLOAT, DOUBLE et DECIMAL. Et l'effet est le même que celui du type de données INT.
2. Type de chaîne
MySQL fournit 8 types de chaînes de base : CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM, SET et d'autres types de chaînes.
peut stocker des données allant d'un simple caractère à d'énormes blocs de texte ou des chaînes binaires.
Type de chaîne Taille d'octet Description et exigences de stockage
CHAR 0-255 octets Chaîne de longueur fixe
VARCHAR 0-255 octets Chaîne de longueur variable
TINYBLOB 0-255 octets Chaîne binaire ne dépassant pas 255 caractères TINYTEXT 0-255 octets BLOB 0-65535 octets sous forme binaire Données texte longues
TEXT 0-65535 octets Données texte longues
MEDIUMBLOB 0- 16 777 215 octets de données texte de longueur moyenne sous forme binaire
MEDIUMTEXT 0-16 7 77 215 octets de données texte de longueur moyenne
LOGNGBLOB 0-4 294 967 295 octets de données texte de très grande longueur dans forme binaire
LONGTEXT 0-4 294 967 295 octets de données texte très volumineuses
VARBINARY(M) ‐ ' s ' s ‐ ‐ ‐ ‐ autorisés à être des chaînes d'octets de longueur fixe avec une longueur de 0-M octets, et la longueur de la valeur + 1 octet Section chaînes d'octets de longueur fixe
Types CHAR et VARCHAR
Le type CHAR est utilisé pour les chaînes de longueur fixe et doit être défini avec un modificateur de taille entre parenthèses. Ce modificateur de taille va de 0 à 255. Les valeurs supérieures à la longueur spécifiée seront tronquées, tandis que les valeurs inférieures à la longueur spécifiée seront complétées par des espaces.
Le type CHAR peut utiliser le modificateur BINARY. Lorsqu'il est utilisé dans des opérations de comparaison, ce modificateur amène CHAR à participer à l'opération sous forme binaire, plutôt que de la manière traditionnelle sensible à la casse.
Une variante du type CHAR est le type VARCHAR. Il s'agit d'un type de chaîne de longueur variable et doit également avoir un indicateur compris entre 0 et 255. La différence entre CHAR et VARCHGAR réside dans la manière dont la base de données MYSQL gère l'indicateur
: CHAR traite cette taille comme la taille de la valeur, et la remplit d'espaces si la longueur n'est pas insuffisante. Le type VARCHAR, en revanche, traite cela comme la valeur maximale et stocke uniquement la valeur en utilisant la longueur
réellement requise pour stocker la chaîne (plus un octet supplémentaire pour stocker la longueur de la chaîne elle-même). Ainsi, les types VARCHAR plus courts que la longueur de l'indicateur ne seront pas complétés par des espaces, mais les valeurs plus longues que l'indicateur seront toujours tronquées.
Étant donné que le type VARCHAR peut modifier dynamiquement la longueur de la valeur stockée en fonction du contenu réel, l'utilisation du type VARCHAR lorsque vous n'êtes pas sûr du nombre de caractères requis par un champ peut considérablement économiser de l'espace disque et améliorer l'efficacité du stockage.
Le type VARCHAR est identique au type CHAR lors de l'utilisation du modificateur BINARY.
Types TEXT et BLOB
Pour les cas où la longueur requise du champ dépasse 255, MySQL propose deux types : TEXT et BLOB. Ils ont tous des sous-types différents en fonction de la taille des données stockées. Ces données volumineuses sont utilisées pour stocker des types de données binaires tels que des blocs de texte ou des images, des
fichiers son, etc.
Il existe des différences de classification et de comparaison entre les types TEXT et BLOB. Le type BLOB est sensible à la casse, tandis que TEXT n'est pas sensible à la casse. Les modificateurs de taille ne sont pas utilisés sur les différents sous-types BLOB et TEXT.
Les valeurs supérieures à la plage maximale prise en charge par le type spécifié seront automatiquement tronquées.
3. Types de date et d'heureMySQL est livré avec 5 types de données différents parmi lesquels choisir lors du traitement des valeurs de type de date et d'heure. Ils peuvent être divisés en types de date et d’heure simples et en types de date et d’heure mixtes.
Des sous-types sont disponibles dans chaque sous-type en fonction de la précision requise, et MySQL dispose de fonctionnalités intégrées pour convertir divers formats d'entrée en un format standard. Type Taille (octets) Plage Format Utilisation
DATE 4 1000-01-01/9999-12-31 AAAA-MM-JJ Valeur de la date
HEURE 3 ' - 838:59:59'/'838:59:59' HH:MM:SS Valeur temporelle ou durée
ANNÉE 1 1901/2155 AAAA Valeur de l'année
DATE HEURE 8 1000-01 - 01 00:00:00/9999-12-31 23:59:59 AAAA-MM-JJ HH:MM:SS Valeurs de date et d'heure mixtes
TIMESTAMP 4 1970-01-01 00:00:00/sometime in 2037 YYYYMMDD HHMMSS Valeurs de date et d'heure mixtes, horodatage
Types DATE, TIME et TEAR
MySQL Le DATE et Les types TEAR stockent des valeurs de date simples et le type TIME stocke des valeurs d'heure. Ces types peuvent être décrits comme des chaînes ou des séquences d'entiers sans délimiteurs. Si elles sont décrites comme une chaîne, les valeurs de type
doivent être séparées par des traits d'union comme délimiteurs, et les valeurs de type TIME doivent être séparées par des deux-points comme délimiteurs.
Il convient de noter qu'une valeur de type TIME sans délimiteur deux-points sera comprise par MySQL comme une durée et non comme un horodatage.
MySQL interprète également au maximum la valeur de deux chiffres dans l'année d'une date, ou de deux chiffres saisis pour le type TEAR dans une instruction SQL. Car toutes les valeurs de type TEAR doivent être stockées avec 4 nombres.
MySQL tente de convertir une année à 2 chiffres en une valeur à 4 chiffres. Convertit les valeurs comprises entre 00 et 69 en valeurs comprises entre 2000 et 2069. Convertit les valeurs comprises entre 70-99 et 1970-1979.
Si la valeur convertie automatiquement par MySQL ne répond pas à nos besoins, veuillez saisir l'année à 4 chiffres.
Types DATEYIME et TIMESTAMP
En plus des types de données date et heure, MySQL prend également en charge deux types mixtes, DATEYIME et TIMESTAMP. Ils peuvent stocker la date et l'heure sous forme de valeur unique.
Les deux types sont couramment utilisés pour stocker automatiquement les horodatages contenant la date et l'heure actuelles, et peuvent bien fonctionner dans les applications qui doivent effectuer un grand nombre de transactions de base de données et qui doivent établir une piste d'audit à des fins de débogage et de révision. .
Si nous n'attribuons pas explicitement de valeur à un champ de type TIMESTAMP, ou si une valeur nulle lui est attribuée. MySQL le remplit automatiquement avec la date et l'heure actuelles du système.
Types composites
MySQL prend également en charge deux types de données composites, ENUM et SET, qui étendent la spécification SQL. Bien que ces types soient techniquement des types de chaînes, ils peuvent être traités comme des types de données différents.
Un type ENUM permet d'obtenir une seule valeur à partir d'une collection tandis que le type SET permet d'obtenir n'importe quel nombre de valeurs à partir d'une collection ;
Type ENUM
Le type ENUM est un peu similaire à une option simple car il ne permet d'obtenir qu'une seule valeur dans l'ensemble. Plus facile à comprendre lorsqu’il s’agit de données mutuellement exclusives, telles que le sexe humain. Les champs de type ENUM peuvent obtenir une valeur d'une collection ou utiliser une valeur nulle
Une entrée autre que celle-ci amènera MySQL à insérer une chaîne vide dans ce champ. De plus, si la casse de la valeur insérée ne correspond pas à la casse des valeurs de la collection, MySQL utilisera automatiquement la casse de la valeur insérée pour la convertir en une valeur cohérente avec la casse de la collection.
Le type ENUM peut être stocké sous forme de nombre en interne dans le système et est indexé à partir de 1. Un type ENUM peut contenir jusqu'à 65536 éléments, dont un est réservé par MySQL pour stocker les informations d'erreur
Cette valeur d'erreur est représentée par l'index 0 ou une chaîne vide.
MySQL considère les valeurs apparaissant dans la collection de types ENUM comme une entrée légale, et toute autre entrée échouera. Cela montre que l'emplacement de l'enregistrement erroné peut être facilement trouvé en recherchant des lignes contenant une chaîne vide ou un index numérique correspondant de 0.
Type SET
Le type SET est similaire mais pas identique au type ENUM. Le type SET peut prendre n'importe quel nombre de valeurs d'une collection prédéfinie. Et comme pour le type ENUM, toute tentative d'insertion d'une valeur non prédéfinie dans un champ de type SET entraînera
MySQL à insérer une chaîne vide. Si vous insérez un enregistrement contenant à la fois des éléments légaux et illégaux, MySQL conservera les éléments légaux et supprimera les éléments illégaux.
Un type SET peut contenir jusqu'à 64 éléments. Dans un élément SET, la valeur est stockée sous la forme d'une séquence discrète de "bits" qui représentent son élément correspondant. Les bits sont un moyen simple et efficace de créer des collections ordonnées d'éléments.
Et il supprime également les éléments en double, il est donc impossible de contenir deux éléments identiques dans le type SET.
Pour rechercher des enregistrements illégaux à partir d'un champ de type SET, recherchez simplement les lignes contenant des chaînes vides ou des valeurs binaires de 0.
En ayant une compréhension générale de l'objectif de chaque type de données, du stockage physique, de la plage de représentation, etc. De cette façon, face à des applications spécifiques, nous pouvons choisir le type de données approprié en fonction des caractéristiques correspondantes, afin de pouvoir nous efforcer de
échanger des coûts de stockage plus faibles contre des données plus élevées sur la base de la satisfaction de la base de données de l'application. performance.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!