Type de données MySQL

MySQL stocke les données. Tant qu'il s'agit de données, nous préciserons le type de données. Un certain type de données est spécifié dans les champs de la table. Ensuite, le type de données correspondant doit être utilisé dans les données insérées. Respectez également les exigences de longueur du type de données.

Dans MySQL, nous divisons les types de données dans les types suivants :

  1. Type numérique (entier, virgule flottante)
  2. Type de chaîne
  3. Date et type de temps
  4. Type composite
  5. Type d'espace (fondamentalement non utilisé dans les travaux non scientifiques, aucune explication ne sera donnée)

Type entier

MySQL数据类型所占字节值范围
tinyint1字节-128~127
smallint2字节-32768~32767
mediumint3字节-8388608~8388607
int4字节范围-2147483648~2147483647
bigint8字节+-9.22*10的18次方

La longueur du type entier est différente et le processus d'utilisation réel est également différent.

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),
garantit que les valeurs contenant moins de 6 chiffres sont automatiquement complétées par des espaces lorsqu'elles sont extraites de 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.

Remarque :

  1. Lors de la création de champs de table, nous pouvons utiliser de minuscules entiers non signés pour représenter le sexe. Utilisez 0 pour représenter une femme et 1 pour représenter un homme. Utilisez 2 pour représenter l’inconnu.
  2. De la même manière que l'âge humain, des entiers non signés peuvent être utilisés lors de la création de champs de table. Parce que l'âge humain n'a pas encore eu de nombre négatif
  3. en usage réel. Quelle est la valeur maximale qui doit être stockée dans notre entreprise. Lorsque nous créons une table, nous choisissons quel type stocker ces valeurs.

Type à virgule flottante

Type de données MySQLoctets occupés Plage de valeurs
float(m, d)4 octetsVirgulule flottante simple précision type, m nombre total, d décimales
double(m, d)8 octets Type à virgule flottante double précision , m nombre total, d décimales
decimal(m, d)
MySQL数据类型所占字节值范围
float(m, d)4字节单精度浮点型,m总个数,d小数位
double(m, d)8字节双精度浮点型,m总个数,d小数位
decimal(m, d)
decimal是存储为字符串的浮点数
La décimale est une virgule flottante nombre stocké sous forme de chaîne

Remarque :

  1. La virgule flottante est une valeur inexacte et peut être moins précise
  2. Et la virgule est appelée un nombre à virgule fixe. En interne, MySQL est essentiellement stocké sous forme de chaîne. En utilisation réelle, s'il existe un stockage de nombres à virgule flottante avec des exigences relativement élevées en matière de précision du montant et de l'argent, il est recommandé d'utiliser le type décimal (nombre à virgule fixe).

Type de caractère

MySQL数据类型所占字节值范围
CHAR0-255字节定长字符串
VARCHAR0-255字节变长字符串
TINYBLOB0-255字节不超过255个字符的二进制字符串
TINYTEXT0-255字节短文本字符串
BLOB0-65535字节二进制形式的长文本数据
TEXT0-65535字节长文本数据
MEDIUMBLOB0-16 777 215字节二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LOGNGBLOB0-4 294 967 295字节二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据
VARBINARY(M)允许长度0-M个字节的定长字节符串值的长度+1个字节
BINARY(M)M允许长度0-M个字节的定长字节符串
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.
*VARCHAR *Traitez cette taille comme la taille de la valeur. Si la longueur n'est pas insuffisante, utilisez des espaces pour la compenser. Le type VARCHAR, en revanche, la traite comme la valeur maximale et utilise uniquement la longueur réellement nécessaire pour stocker la chaîne
Le type n'est pas complété par des espaces, mais les valeurs plus longues que l'indicateur sont 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.

Type de texte et type de blobLorsque la longueur requise du champ dépasse 255, MySQL propose deux types : TEXTE 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 blocs de texte ou des types de données binaires tels que des images et des fichiers sonores.
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.

Type d'heure

MySQL数据类型所占字节值范围
date3字节日期,格式:2014-09-18
time3字节时间,格式:08:42:30
datetime8字节日期时间,格式:2014-09-18 08:42:30
timestamp4字节自动存储记录修改的时间
year1字节年份
Remarque :

    Le type d'heure est rarement utilisé dans les systèmes Web. De nombreuses personnes aiment utiliser int pour stocker l'heure. Lors de l'insertion, l'horodatage Unix est inséré car cette méthode est plus pratique pour le calcul. Utilisez les fonctions de type de date dans les activités frontales pour convertir les horodatages Unix en heures que les gens peuvent reconnaître.
  1. Vous pouvez choisir les types ci-dessus en fonction de la situation réelle
  2. Certaines personnes utilisent le type datetime pour stocker l'heure afin de faciliter la visualisation dans la gestion de la base de données.
Type composite

Un type ENUM ne permet d'obtenir qu'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 similaire à une option unique car il ne permet d'obtenir qu'une seule valeur dans la collection. Plus facile à comprendre lorsqu’il s’agit de données mutuellement exclusives, telles que le sexe humain. Les champs de type ENUM peuvent prendre une valeur d'une collection ou utiliser une valeur nulle. Toute autre entrée amènera MySQL à insérer une chaîne vide dans le 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'à 65 536 é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 obtenir n'importe quel nombre de valeurs à partir d'une collection prédéfinie. Et comme pour le type ENUM, toute tentative d'insérer une valeur non prédéfinie dans un champ de type SET entraînera l'insertion par MySQL d'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 trouver 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.

Utilisation des types

Nous avons appris tellement de types, utilisez simplement le type correspondant lors de la création d'une instruction de table.

Par exemple :

CRÉER UNE TABLE SI NON EXISTE demo (
id int(11) NOT NULL,
username varchar(50) NON NULL,
password char(32) NON NULL,
content longtext NON NULL,
createtime datetime NON NULL,
sex tinyint(4) NON NULL
) MOTEUR=InnoDB CHARSET PAR DÉFAUT=utf8;

Champ d'autres paramètres d'attribut

UNSIGNED (non signé) Principalement utilisé pour les types entiers et à virgule flottante, utilisez non signé. C'est-à-dire qu'il n'y a pas de - (signe moins) précédent.
Chiffres de stockage plus longs. La plage de valeurs de l’entier tinyint est de -128 à 127. Après avoir utilisé des longueurs non signées, 0 à 255 peuvent être stockées.

Lors de la création, suivez l'instruction de champ entier ou à virgule flottante :

unsigned

ZEROFILL (0 padding) 0 ( pas un espace) 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.

Lors de la création, suivez l'instruction de champ entier ou à virgule flottante :

zerofill

defaultL'attribut par défaut garantit que When aucune valeur n'est disponible, une valeur constante est attribuée. Cette valeur doit être une constante car MySQL ne permet pas l'insertion de valeurs de fonction ou d'expression. De plus, cette propriété ne peut pas être utilisée avec les colonnes BLOB ou TEXT. Si l'attribut NULL a été spécifié pour cette colonne, la valeur par défaut sera NULL si aucune valeur par défaut n'est spécifiée, sinon la valeur par défaut dépendra du type de données du champ.

Lors de la création, suivez l'instruction de champ entier ou à virgule flottante :

'valeur' ​​par défaut

non nulle Si un La colonne est définie comme non nulle, les valeurs nulles ne pourront pas être insérées dans la colonne. Il est recommandé de toujours utiliser l'attribut non nul dans les situations importantes, car il fournit une validation de base indiquant que toutes les valeurs nécessaires ont été transmises à la requête.

Lors de la création, suivez l'instruction de champ entier ou à virgule flottante :

non nul

null est spécifié pour la colonne Avec un attribut null, la colonne peut rester vide, que les autres colonnes de la ligne aient été remplies ou non. N'oubliez pas que null signifie "aucun" pour être précis, pas la chaîne vide ou 0.

Ne déclarez simplement pas non nul après l'instruction de champ entier ou à virgule flottante lors de la création.

Formation continue
  • Recommandations de cours
  • Téléchargement du didacticiel