Maison  >  Article  >  base de données  >  L'analyse la plus complète : les types de champs MySQL

L'analyse la plus complète : les types de champs MySQL

WBOY
WBOYavant
2021-12-24 18:26:152750parcourir

Cet article vous apporte des connaissances pertinentes sur les types de champs MySQL et fait un résumé. J'espère qu'il sera utile à tout le monde.

L'analyse la plus complète : les types de champs MySQL

Préface :

Pour comprendre une base de données, nous devons comprendre les types de données qu'elle prend en charge. MySQL prend en charge un grand nombre de types de champs, dont beaucoup sont couramment utilisés. Nous avons également parlé de l'utilisation des types int et varchar dans les articles précédents, mais nous n'avons jamais entièrement parlé des types de champs. Dans cet article, nous couvrirons tous les types de champs et parlerons de l'utilisation des types de champs courants.

Les types de champs couramment utilisés peuvent être grossièrement divisés en trois catégories : type numérique, type de chaîne et type de date et d'heure. Présentons-les dans l'ordre en fonction des catégories.

1. Type numérique

Le type numérique peut être divisé en trois sous-catégories : type entier, type à virgule flottante et type à virgule fixe.

Les types entiers sont principalement utilisés pour stocker des valeurs entières. Il existe principalement les types de champs suivants :

Lanalyse la plus complète : les types de champs MySQL

Les types entiers sont souvent utilisés, tels que tinyint, int, bigint. La valeur par défaut est signée. Si vous avez uniquement besoin de stocker des valeurs non signées, vous pouvez ajouter l'attribut non signé.

Le M dans int(M) représente la largeur d'affichage maximale. Cela ne signifie pas que int(1) ne peut pas stocker la valeur 10. Quel que soit le nombre de caractères définis pour la largeur d'affichage, int occupe toujours 4 octets, c'est-à-dire , int (5) La plage de stockage est la même que int(10).

Plus les octets de stockage sont petits, plus l'espace occupé est petit. Par conséquent, conformément au principe de minimisation du stockage, nous devrions essayer de choisir le type entier approprié. Par exemple, tinyint peut être utilisé pour stocker certaines valeurs de statut ou l'âge des personnes pour les colonnes de clé primaire, il n'y a pas de nombres négatifs. Il est recommandé d'utiliser int unsigned ou bigint unsigned pour estimer le nombre de champs. La valeur dépassera 4,2 milliards, en utilisant le type bigint.

Les types à virgule flottante incluent principalement float et double. Les types à virgule flottante stockent des valeurs approximatives dans la base de données, telles que float(6,3). Si vous insérez un nombre 123.45678, le nombre réel stocké dans la base de données est 123.457, mais. le nombre total Il dépend également de la situation réelle, c'est-à-dire 6 chiffres, et la partie entière maximale est de 3 chiffres. float et double ne sont pas couramment utilisés.

Lanalyse la plus complète : les types de champs MySQL

Il existe un type de champ à virgule fixe : DECIMAL, qui est principalement utilisé pour stocker des décimales avec des exigences de précision.

Lanalyse la plus complète : les types de champs MySQL

DECIMAL a été introduit à partir de MySQL 5.1 et la syntaxe de déclaration de colonne est DECIMAL(M,D). NUMERIC est synonyme de DECIMAL Si le type de champ est défini comme NUMERIC, il sera automatiquement converti en DECIMAL.

Pour la syntaxe de déclaration DECIMAL(M,D), la plage de valeurs de l'argument est la suivante :

  • M est le nombre maximum de chiffres (précision), allant de 1 à 65. Ne peut pas être spécifié, la valeur par défaut est 10.
  • D est le nombre de chiffres à droite de la virgule décimale (places décimales). La plage est comprise entre 0 et 30 et ne peut pas être supérieure à M. Il n'est pas nécessaire de la spécifier. La valeur par défaut est 0.

Par exemple, le champ salaire DECIMAL(5,2) est capable de stocker n'importe quelle valeur avec cinq chiffres et deux décimales, donc la plage de valeurs pouvant être stockée dans la colonne salaire est de -999,99 à 999,99. .

2. Type de chaîne

Le type de chaîne est également souvent utilisé. Les types couramment utilisés sont les suivants :

Lanalyse la plus complète : les types de champs MySQL

Parmi eux, char et varchar sont les plus couramment utilisés. Le type char est de longueur fixe et MySQL alloue toujours suffisamment d'espace en fonction de la longueur de chaîne définie. Lorsque les valeurs de caractères sont enregistrées, elles sont complétées vers la droite avec des espaces de la longueur spécifiée, et lorsque les valeurs de caractères sont récupérées, les espaces de fin sont supprimés. Le type varchar est utilisé pour stocker des chaînes de longueur variable. Lors du stockage, si les caractères n'atteignent pas le nombre de chiffres défini, aucun espace ne sera ajouté à la fin. Le M dans

char(M) et varchar(M) représente le nombre maximum de caractères enregistrés. Une seule lettre, un chiffre, un chinois, etc. occupent tous un caractère. char convient au stockage de chaînes très courtes ou lorsque toutes les valeurs sont proches de la même longueur. Par exemple, char est idéal pour stocker la valeur MD5 d'un mot de passe car il s'agit d'une valeur de longueur fixe. Pour les situations où la chaîne est très longue ou les chaînes à stocker sont de longueurs différentes, varchar est plus adapté.

Lors de la définition de la longueur maximale d'un champ, nous devons l'attribuer selon les besoins, faire une estimation à l'avance et essayer de ne pas utiliser le type texte si le type varchar peut être utilisé. À moins qu’il ne soit nécessaire de stocker des données textuelles longues, envisagez d’utiliser le type texte.

Le type BLOB est principalement utilisé pour stocker de gros objets binaires, tels que des images, des fichiers audio et vidéo. Rarement utilisé dans la vie quotidienne, vous pouvez envisager de l'utiliser lors du stockage de chaînes binaires.

3. Types de date et d'heure

Les types de date et d'heure pris en charge par MySQL sont YEAR, TIME, DATE, DATETIME, TIMESTAMP La comparaison de plusieurs types est la suivante :

. Lanalyse la plus complète : les types de champs MySQL

En ce qui concerne la sélection du type de champ de date et d'heure, sélectionnez simplement le type approprié en fonction des exigences de stockage.

Le choix entre les types DATETIME et TIMESTAMP peut être basé sur les exigences de stockage. Par exemple, si une plage de stockage plus large est requise, il est recommandé d'utiliser DATETIME. Si vous stockez uniquement l'horodatage actuel, vous pouvez utiliser le type TIMESTAMP. Cependant, il convient de noter que les données du champ TIMESTAMP changeront avec le fuseau horaire du système, mais pas les données du champ DATETIME. En général, DATETIME est plus largement utilisé.

Résumé :

Cet article présente principalement les types de champs couramment utilisés dans MySQL. Les types de champs couramment utilisés sont essentiellement ici. Il est résumé comme suit avec une carte mentale :

Lanalyse la plus complète : les types de champs MySQL

Apprentissage recommandé : vidéo mysql. tutoriel

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer