Mysql
 sql >> Base de données >  >> RDS >> Mysql

Types de données MySQL :connaître ceux à utiliser et comment

Lors de la création d'une table dans une base de données, elle doit avoir à la fois un nom et un type de données. Le type de données d'une colonne définit les valeurs que contient la colonne, telles que entier, monétaire, binaire, caractère, date et heure. Par conséquent, il incombe au développeur de déterminer quels types de données seront stockés dans chaque colonne lors de la création de bases de données et de tables.

En termes simples, les types de données sont des directives qui aident SQL à comprendre quel type de données est requis dans une colonne. Il est également efficace pour identifier comment SQL interagit avec les données stockées.

Un point à noter est que les types de données peuvent contenir des noms différents dans différentes bases de données, et dans les cas où les noms sont identiques, d'autres aspects et détails tels que la taille seront différents. Par conséquent, il est recommandé de toujours se référer à la documentation chaque fois que vous rencontrez des cas similaires.

Les caractéristiques suivantes peuvent identifier les types de données dans MySQL :

  • Les valeurs des types de données qui peuvent être indexées et celles qui ne peuvent pas l'être
  • Le type de valeurs qu'ils représentent
  • L'espace qu'ils occupent, que les valeurs soient de longueur variable ou de longueur fixe
  • Comment MySQL se compare aux différentes valeurs de types de données spécifiques

Avant de plonger et de couvrir les types de données MySQL, il est essentiel d'apprendre et de comprendre les conventions utilisées par les descriptions des types de données, comme indiqué ci-dessous :

  • (M ) :pour les types entiers, il indique la largeur maximale que le type de données peut afficher.
     :il indique le nombre total de chiffres pouvant être stockés pour les types à virgule fixe et les types à virgule flottante.
     :Pour les types de chaîne, il indique la longueur maximale

Remarque :M la valeur maximale autorisée dépend du type de données

• (D ) :s'applique uniquement aux types à virgule fixe et aux types à virgule flottante. Il indique l'échelle (le nombre de chiffres qui suivent la virgule décimale). La valeur maximale possible est 10, alors qu'elle ne devrait pas être plus significative que M -2

• Les crochets ([et]) indiquent les parties facultatives du type de définition.

f sp : cette convention s'applique aux types d'horodatage, de date et d'heure. Il représente la précision des fractions de seconde (le nombre de chiffres qui suivent la virgule décimale pour les fractions de seconde). Le fsp donné la valeur doit être comprise entre 0 et 6. La valeur 0 signifie qu'il n'y a pas de parties fractionnaires présentes dans la valeur donnée. Cependant, dans les cas où la valeur est omise, la précision est indiquée comme étant 0.

Dans MySQL, il existe trois catégories principales de types de données qui contiennent des sous-catégories. Les principaux types de données sont :

  1. Types de données de chaîne
  2. Types de données de date et d'heure.
  3. Types de données numériques

Il existe d'autres types de données pris en charge par MySQL, tels que les types de données spatiales et les types de données JSON.

Cet article couvrira de manière exhaustive tous les types de données mentionnés ci-dessus. Par conséquent, pour bien comprendre les types de données, respectez cet article.

Types de données de chaîne

Les types de données de chaîne sont principalement utilisés pour contenir des données binaires et du texte brut tels que des images et des fichiers. De plus, MYSQL a la capacité de comparer et de rechercher des valeurs de chaîne en fonction du modèle correspondant, telles que des expressions régulières et des opérateurs.

Vous trouverez ci-dessous une illustration détaillée de tous les types de données de chaîne pris en charge par MySQL :

CAR ( taille ): Il s'agit de la longueur fixe d'une chaîne. Il peut contenir des lettres, des caractères spéciaux ou des chiffres. Le paramètre taille indique la longueur de la colonne en caractères et peut aller de 0 à 255. La taille par défaut est 1.

VARCHAR ( taille ): Il s'agit de la longueur variable d'une chaîne. Il contient des chiffres, des caractères spéciaux ou des lettres. Le paramètre taille affiche la longueur maximale de la colonne en caractères, et elle peut aller de 0 à 65 535.

BINAIRE ( taille ): Ceux-ci sont égaux à CHAR (), ne stockant que des chaînes d'octets binaires. Le paramètre taille spécifie la longueur de la colonne en octets. La valeur par défaut est 1

VARBINAIRE ( taille ): Ceci est égal à VARCHAR (), sauf qu'il stocke des chaînes d'octets binaires. Le paramètretaille spécifie la longueur maximale de la colonne en octets.

TINYTEXTE : Contient des chaînes contenant une longueur maximale de 255 caractères.

TEXTE ( taille ): Contient des chaînes contenant une longueur maximale de 65 535 octets.

BLOB ( taille ): Pour les grands objets binaires (BLOB). Ils contiennent jusqu'à 65 535 octets de données.

TINYBLOB : Pour les grands objets binaires (BLOB). Il contient une longueur maximale de 255 octets.

LONGLOB : Pour les grands objets binaires (BLOB). Ils contiennent jusqu'à 4 294 967 295 octets de données.

TEXTE LONG : Contient des chaînes contenant une longueur maximale de 4 294 967 295 caractères.

TEXTE MOYEN : Contient des chaînes contenant une longueur maximale de 16 777 215 caractères.

BLOB MOYEN : Pour les grands objets binaires (BLOB). Ils contiennent jusqu'à 16 777 215 octets de données.

SET ( val1, val2, val3, … ): Il s'agit d'un objet chaîne contenant plusieurs valeurs (chaînes contenant 0 ou plusieurs valeurs). Ils sont choisis parmi une liste de valeurs possibles tout comme ENUM. Cependant, dans une liste SET, vous ne pouvez répertorier que 64 valeurs maximum.

ENUM ( val1, val2, val3, … ): Il s'agit d'un objet chaîne qui ne peut contenir qu'une seule valeur choisie dans une liste de toutes les valeurs possibles. Dans une liste ENUM, vous pouvez répertorier jusqu'à 65 535 valeurs. Si une valeur ne figurant pas dans la liste est insérée, la valeur insérée sera vide. Aussi, il est essentiel de noter que les valeurs sont triées en fonction de l'ordre dans lequel l'utilisateur les a saisies.

Types de données de date et d'heure

Les types de données de date et d'heure spécifient les valeurs temporelles telles que DateTime, timestamp, year, time et date. Chacun des types temporels mentionnés a des valeurs qui incluent zéro. Chaque fois qu'une valeur invalide est insérée, MySQL ne peut pas la représenter. Par conséquent, un zéro est opté pour.

Vous trouverez ci-dessous une illustration complète des types de données de date et d'heure pris en charge par MySQL :

DATE : Le format de date standard est respectivement les années, les mois et les jours (AAAA-MM-JJ), et la plage prise en charge va de "1000-01-01" à "9999-12-31".

DATEHEURE ( fsp ): C'est la combinaison de la date et de l'heure. Le format standard, dans ce cas, est respectivement les années, les mois, les jours, les heures, les minutes et les secondes (AAAA-MM-JJ hh:mm:ss)

Remarque : L'ajout de DEFAULT et ON UPDATE dans une colonne est essentiel pour démarrer l'initialisation automatique et met à jour l'heure et la date actuelles.

HORODATAGE ( fsp ): Depuis l'époque Unix, les valeurs d'horodatage sont stockées sous forme de nombre de secondes telles que ('1970-01-01 00;00;00' UTC). Le format standard est respectivement les années, les mois, les jours, les heures, les minutes et les secondes (AAAA-MM-JJ hh:mm:ss) tandis que la plage prise en charge est comprise entre '('1970-01-01 00;00;01' UTC à ('2038-01-09 03;14;07' UTC. Les valeurs DEFAULT_CURRENT_TIMESTAMP et ON UPDATE CURRENT_TIMESTAMP sont essentielles pour initialiser et mettre à jour automatiquement la date et l'heure actuelles.

HEURE ( fsp ): Le format d'heure standard pris en charge est respectivement les heures, les minutes et les secondes (hh:mm:ss), et la plage prise en charge va de "-838:59:59" à "838:59:59".

ANNÉE : Une année est représentée dans un format à quatre chiffres. Les valeurs autorisées dans le format à quatre chiffres vont de 1902 à 2155 et 0000.

Remarque : La dernière version de MySQL (8.0) ne prend pas en charge l'année au format à deux chiffres.

Types de données numériques

Les types de données numériques incluent tous les types de données numériques exacts tels que entier, décimal et numérique. Il contient également les types de données numériques approximatifs tels que flottant, double, double précision et réel. Les types de données numériques stockent des valeurs de bit car ils prennent en charge les types de données BIT. Habituellement, les types de données numériques dans MySQL sont divisés en deux catégories :les types de données signés et les types de données non signés ; cependant, il s'agit d'une exception pour les types de données binaires.

Vous trouverez ci-dessous une illustration détaillée contenant tous les types de données numériques pris en charge par MySQL et leur description :

BIT ( taille ): Il s'agit d'un type bit-value dans lequel le nombre de bits par valeur est indiqué en termes de taille . Le paramètre taille a la capacité de contenir des valeurs de 1 à 64, et sa valeur par défaut pour la taille est 1.

TINYINT ( taille ): Il s'agit d'un très petit entier dont la plage signée s'étend de -128 à 127 tandis que sa plage non signée s'étend de 0 à 255. Le paramètre taille désigne la largeur maximale à afficher, qui est d'environ 255.

BOOLÉEN : Il est égal à un BOOL

BOOL : Dans un BOOL, les valeurs non nulles sont considérées comme vraies. Dans le même temps, les valeurs zéro sont considérées comme fausses.

INT ( taille ): Il s'agit d'un entier moyen dont la plage signée va de -2147483648 à 2147483647, tandis que la plage non signée va de 0 à 4294967295. Le paramètre taille spécifie la largeur maximale à afficher, qui est d'environ 255.

INTENSITÉ MOYENNE ( taille ): Il s'agit également d'un entier moyen dont la plage signée s'étend de -32768 à 32767 tandis que sa plage non signée s'étend de 0 à 65535. Le paramètretaille spécifie la largeur maximale à afficher, qui est d'environ 255.

PETITINT ( taille ): Il s'agit d'un petit entier dont la plage signée est comprise entre -32768 et 32767, tandis que la plage non signée est comprise entre 0 et 16777215. La taille paramètre, dans ce cas, est utilisé pour spécifier la largeur d'affichage maximale, dont la plage est d'environ 255.

FLOATANT ( taille, d ): C'est un nombre à virgule flottante dont le nombre total de chiffres est noté en taille. Le d permet de spécifier le nombre de chiffres après la virgule décimale.

Remarque : ce paramètre est obsolète dans MySQL version 8.0.17. Par conséquent, il ne sera pas reproduit dans les futures versions de MySQL.

ENTIER ( taille ): Cela équivaut à un INT (taille ).

FLOAT( p ): C'est un nombre à virgule flottante. Le P Le paramètre est utilisé pour déterminer si un FLOAT ou un DOUBLE sera utilisé dans un type de données résultant. Lorsque le P -valeur comprise entre 0 et 24, les données sont appelées FLOAT (). Alors que lorsque le P -la valeur est comprise entre 25 et 53, puis le type de données passe à DOUBLE ().

DEC ( taille, d ): C'est l'équivalent d'un DECIMAL (taille, d )

DOUBLER ( taille, d ): Cela indique une taille standard nombre à virgule flottante dont le nombre total de chiffres est donné en taille. Le d permet de spécifier le nombre de chiffres après la virgule décimale.

DECIMAL ( taille, d ): C'est un nombre exact à virgule fixe dont le nombre total de chiffres est spécifié en termes de taille . Le d paramètre spécifie les chiffres du nombre après la virgule décimale. La taille maximale le nombre est 65, tandis que le d le nombre maximum est 30. Par conséquent, la valeur par défaut pour d est 0, tandis que la valeur par défaut pour taille est 10.

Remarque : tous les types numériques contiennent des options supplémentaires ; ZEROFILL et NON SIGNÉ. Si l'option UNSIGNED est ajoutée, MySQL n'autorisera pas les valeurs négatives dans la colonne. En revanche, si l'option ZEROFILL est ajoutée, MySQL ajoutera automatiquement l'attribut UNSIGNED à ladite colonne.

Autres types de données

Type de données booléen

Le plus petit type d'entier TINYINT (1) est utilisé pour représenter les valeurs booléennes dans MySQL puisque MySQL ne contient pas de type de données BOOL ou BOOLEAN intégré. Par conséquent, lorsque vous travaillez avec des BOOL et des BOOLEAN, vous devez les assimiler au TINYINT (1).

Type de données spatiales

MySQL prend en charge plusieurs types de données spatiales qui ont différents types de valeurs géographiques et géométriques, comme indiqué ci-dessous :

GÉOMÉTRIE : Il s'agit d'un agrégat ou d'un point qui peut contenir la valeur spatiale de n'importe quel type tant qu'ils ont un emplacement.

POLYGONE : Il s'agit d'une surface plane représentée par une géométrie à plusieurs côtés. Il peut être défini soit par zéro, soit par une seule limite extérieure et plusieurs limites intérieures.

CHAÎNE MULTILIGNE : Il s'agit d'une géométrie à plusieurs courbes qui contient une collection de valeurs LINESTRING.

MULTIPOLYGONE : Il s'agit d'un objet multi-surface représenté par une collection de plusieurs éléments polygonaux, et c'est une géométrie bidimensionnelle

POINT : C'est un point ou une paire qui contient les coordonnées X et Y. On peut dire qu'il s'agit d'un point dans une géométrie qui représente un emplacement unique.

COLLECTION DE GÉOMÉTRIE : Ceci est une collection de valeurs GEOMETRY

LINESTRING : Il s'agit d'une courbe contenant une ou plusieurs valeurs ponctuelles. Dans les cas où une chaîne de lignes ne contient que deux points, cela signifie qu'elle représente une ligne.

MULTIPOINT : Il s'agit d'une collection de valeurs POINT dans lesquelles le point ne peut être ordonné ou connecté d'aucune façon.

Type de données JSON

MYSQL prend en charge le type de données JSON natif depuis la création de la version 5.7.8, ce qui a permis le stockage et la gestion des documents JSON de manière beaucoup plus rapide et efficace. De plus, le type de données JSON natif est chargé de fournir un format de stockage optimal et une validation automatique des documents JSON.

Conclusion

Cet article a couvert de manière exhaustive tous les aspects concernant les types de données MySQL qui vous aideront à comprendre quels types de données doivent être utilisés et comment ils doivent être utilisés. Nous pensons que cet article vous aidera également à améliorer vos connaissances sur MySQL.