Maison > base de données > tutoriel mysql > le corps du texte

Quels sont les types de champs MySQL ?

青灯夜游
Libérer: 2022-04-14 15:10:42
original
32010 Les gens l'ont consulté

Il existe 5 types de types de champs MySQL : 1. Type entier, principalement utilisé pour stocker des nombres entiers, notamment INT, BIGINT, TINYINT, etc. ; 2. Types de nombres à virgule flottante et de nombres à virgule fixe, utilisés pour stocker des nombres décimaux. les nombres à virgule incluent FLOAT et DOUBLE. Les nombres à virgule fixe incluent DECIMAL ; 3. Type de chaîne, utilisé pour stocker des données de chaîne, etc.

Quels sont les types de champs MySQL ?

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.

Chaque champ de la base de données doit avoir un type de données approprié qui limite ou autorise les données stockées dans cette colonne. Par exemple, si le champ stocke des nombres, le type de données correspondant doit être numérique.

L'utilisation d'un mauvais type de données peut sérieusement affecter la fonctionnalité et les performances de l'application. Par conséquent, lors de la conception des tableaux, une attention particulière doit être accordée aux types de données utilisés dans les colonnes de données. Changer une colonne contenant des données n’est pas une mince affaire et cela peut entraîner une perte de données. Par conséquent, le type et la longueur de données corrects doivent être définis pour chaque colonne lors de la création du tableau.

Les types de données des champs MySQL peuvent être grossièrement divisés en 5 types, à savoir le type entier, le type à virgule flottante et le type à virgule fixe, le type de date et d'heure, le type de chaîne, le type binaire, etc.

Remarque : les types entiers et les types à virgule flottante peuvent être collectivement appelés types de données numériques.

1. Type entier

Le type entier est également appelé données numériques. Le type de données numérique est principalement utilisé pour stocker des nombres entiers.

MySQL fournit une variété de types de données numériques. Différents types de données fournissent différentes plages de valeurs. Plus la plage de valeurs pouvant être stockée est grande, plus l'espace de stockage requis est grand.

Les principaux types d'entiers fournis par MySQL sont TINYINT, SMALLINT, MEDIUMINT, INT et BIGINT, et des contraintes d'incrémentation automatique AUTO_INCREMENT peuvent être ajoutées à leurs champs d'attributs. Le tableau suivant répertorie les types numériques dans MySQL.

Nom du type Description Exigences de stockage
TINYINT très petit entier 1 octet
SMALLINT petit entier Festival 2 Yu
MEDIUMINT medium taille entière 3 octets
INT (INTEGHR) entier de taille normale 4 octets
BIGINT grand entier 8 octets

Comme vous pouvez le voir dans le tableau ci-dessus, différents types d'entiers nécessitent différents nombres d'octets à stocker. Le type TINYINT occupe le plus petit nombre d'octets et le type BIGINT occupe le plus grand nombre d'octets. Plus il occupe d'octets, plus il y a de types, plus la plage de. valeurs qui peuvent être représentées.

La plage de valeurs de chaque type de données peut être trouvée en fonction du nombre d'octets occupés. Par exemple, TINYINT nécessite 1 octet (8 bits) pour stocker, alors la valeur maximale du numéro non signé TINYINT est 28-1, soit 255 ; la valeur maximale du numéro signé TINYINT est 27-1, soit 127.

2. Types à virgule flottante et à virgule fixe

MySQL utilise des nombres à virgule flottante et à virgule fixe pour représenter les décimales.

Il existe deux types de nombres à virgule flottante, les nombres à virgule flottante simple précision (FLOAT) et les nombres à virgule flottante double précision (DOUBLE) ; il n'existe qu'un seul type à virgule fixe, qui est DECIMAL ;

Les types à virgule flottante et les types à virgule fixe peuvent être représentés par (M, D), où M est appelé précision, indiquant le nombre total de chiffres ; D est appelé échelle, indiquant le nombre de chiffres décimaux.

La plage de valeurs du type de nombre à virgule flottante est M (1 ~ 255) et D (1 ~ 30, et ne peut pas être supérieure à M-2), qui représentent respectivement la largeur d'affichage et le nombre de décimales. M et D sont facultatifs dans FLOAT et DOUBLE, et les types FLOAT et DOUBLE seront enregistrés avec la précision maximale prise en charge par le matériel. La valeur D par défaut pour DECIMAL est 0 et la valeur M est 10.

Le tableau suivant répertorie les types décimaux et les exigences de stockage dans MySQL.

Nom du type Description Exigences de stockage
FLOAT Point flottant simple précision 4 octets
DOUBLE Point flottant double précision 8 octets
DÉCIMAL ( M, D), DEC Numéro à virgule fixe "strict" compressé M+2 octets

Le type DECIMAL est différent de FLOAT et DOUBLE. DOUBLE est en fait stocké sous la forme d'une chaîne. La plage de valeurs maximale possible de DECIMAL est la même que celle de DOUBLE, mais la plage de valeurs effective est déterminée par M et D. Si M est modifié et D est fixe, la plage de valeurs s'élargit à mesure que M grandit.

Comme vous pouvez le voir dans le tableau ci-dessus, l'espace de stockage de DECIMAL n'est pas fixe, mais est déterminé par la valeur de précision M, occupant M+2 octets.

La plage de valeurs du type FLOAT est la suivante :

  • La plage de valeurs signée : -3.402823466E+38~-1.175494351E-38.

  • Plage de valeurs non signées : 0 et -1,175494351E-38~-3,402823466E+38. La plage de valeurs du type

DOUBLE est la suivante :

  • La plage de valeurs signée : -1.7976931348623157E+308~-2.2250738585072014E-308.

  • Plage de valeurs non signées : 0 et -2,2250738585072014E-308~-1,7976931348623157E+308.

Conseils : Qu'il s'agisse de type à virgule fixe ou à virgule flottante, si la précision spécifiée par l'utilisateur dépasse la plage de précision, elle sera arrondie pour le traitement.

FLOAT et DOUBLE prendront par défaut la précision réelle (déterminée par le matériel informatique et le système d'exploitation) lorsque la précision n'est pas spécifiée. DECIMAL sera par défaut (10, 0) si la précision n'est pas spécifiée.

L'avantage des nombres à virgule flottante par rapport aux nombres à virgule fixe est qu'ils peuvent représenter une plage plus large lorsque la longueur est constante ; l'inconvénient est que cela peut entraîner des problèmes de précision.

Enfin, permettez-moi de souligner : dans MySQL, les nombres à virgule fixe sont stockés sous forme de chaînes. Lorsque les exigences de précision sont relativement élevées (comme la devise, les données scientifiques), il est préférable d'utiliser le type DECIMAL, et le type DECIMAL. Deux autres nombres à virgule flottante sont utilisés pour la soustraction et la sommation. Les opérations de comparaison sont également sujettes à des problèmes, vous devez donc faire attention lorsque vous utilisez des nombres à virgule flottante et essayer d'éviter les comparaisons à virgule flottante.

3. Type date/heure

Il existe de nombreux types de données représentant les dates dans MySQL : YEAR, TIME, DATE, DTAETIME, TIMESTAMP. Lorsque vous enregistrez uniquement les informations sur l’année, vous ne pouvez utiliser que le type ANNÉE.

Chaque type a une plage de valeurs légales. Lorsqu'une valeur illégale est spécifiée, le système insérera une valeur « zéro » dans la base de données.

Le tableau suivant répertorie les types de date et d'heure dans MySQL.

Nom du type Format de date Plage de dates Exigences de stockage
ANNÉE AAAA 1901 ~ 2155 1 octet
HEURE HH:MM:SS -838:59:59 ~ 838:59:59 3 octets
DATE AAAA-MM-JJ 1000-01-01 ~ 9999-12-3 3 mots Section
DATETIME AAAA-MM-JJ HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8 octets
TIMESTAMP AAAA-MM -DD ​​HH:MM:SS 1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC 4 octets

Type YEAR

Le type YEAR est un type à un octet utilisé pour représenter l'année, ne nécessitant qu'un seul octet pour le stockage. L'ANNÉE peut être spécifiée dans différents formats, comme suit :

  • ANNÉE exprimée sous forme de chaîne à 4 chiffres ou au format numérique à 4 chiffres, allant de « 1901 » à « 2155 ». Le format de saisie est 'YYYY' ou YYYY. Par exemple, si vous saisissez '2010' ou 2010, les valeurs insérées dans la base de données seront 2010.

  • ANNÉE exprimée sous forme de chaîne à 2 chiffres, allant de « 00 » à « 99 ». Les valeurs comprises entre « 00 » et « 69 » et « 70 » et « 99 » sont converties en valeurs ANNÉE comprises entre 2000 et 2069 et entre 1970 et 1999 respectivement. « 0 » a le même effet que « 00 ». Les valeurs insérées en dehors de la plage seront converties en 2000.

  • ANNÉE exprimée sous la forme d'un nombre à 2 chiffres, allant de 1 à 99. Les valeurs comprises entre 1 et 99 et 70 à 99 sont converties en valeurs ANNÉE comprises entre 2001 et 2069 et 1970 à 1999 respectivement. Notez qu'ici une valeur de 0 sera convertie en 0000 et non en 2000.

Conseil : La plage de nombres entiers à deux chiffres est légèrement différente de la plage de chaînes à deux chiffres. Par exemple, pour insérer l'année 3000, un lecteur peut utiliser le format numérique 0 pour représenter l'ANNÉE, mais en fait, la valeur insérée dans la base de données est 0000 et non 3000 comme prévu. Seuls « 0 » ou « 00 » au format chaîne peuvent être correctement interprétés comme 3000, les valeurs illégales de l'ANNÉE seront converties en 0000.

Type TIME

Le type TIME est utilisé pour les valeurs qui nécessitent uniquement des informations temporelles et nécessitent 3 octets pour le stockage. Le format est HH:MM:SS. HH représente les heures, MM représente les minutes et SS représente les secondes.

La plage de valeurs du type TIME est -838:59:59~838:59:59 La raison pour laquelle la partie heure est si grande est que le type TIME ne peut pas seulement être utilisé pour représenter l'heure d'une journée ( doit être inférieur à 24 heures), mais peut également être un certain temps écoulé depuis un événement ou le temps entre deux événements (peut être supérieur à 24 heures, voire négatif).

Les valeurs TIME peuvent être spécifiées en utilisant différents formats, comme indiqué ci-dessous.

  • 'D HH:MM:SS' chaîne de format. Vous pouvez également utiliser ces syntaxes « non strictes » : 'HH:MM:SS', 'HH:MM', 'D HH' ou 'SS'. D représente ici le jour, qui peut prendre une valeur comprise entre 0 et 34. Lors de l'insertion dans la base de données, D est converti en heures et enregistré au format "D*24+HH".

  • Format 'HHMMSS', une chaîne sans séparateurs, ou une valeur numérique au format HHMMSS, en supposant une heure significative. Par exemple, « 101112 » signifie « 10:11:12 », mais « 106112 » est illégal (il comporte une partie minutes dénuée de sens) et deviendra 00:00:00 une fois stocké.

Astuce : lors de l'attribution de valeurs abrégées à la colonne TIME, veuillez noter : s'il n'y a pas de deux-points, MySQL suppose que les deux chiffres les plus à droite représentent les secondes lors de l'interprétation de la valeur. (MySQL interprète les valeurs TIME comme l'heure passée plutôt que l'heure actuelle). Par exemple, un lecteur pourrait penser que « 1112 » et 1112 signifient 11:12:00 (soit 12 minutes après 11 heures), mais MySQL les interprète comme 00:11:12 (soit 11 minutes et 12 secondes). ). De même, « 12 » et 12 sont interprétés comme 00:00:12. Au contraire, si deux points sont utilisés dans la valeur TIME, ils sont définitivement considérés comme l'heure de la journée, c'est-à-dire que « 11:12 » signifie 11:12:00 et non 00:11:12.

Type DATE

Le type DATE est utilisé lorsqu'une seule valeur de date est nécessaire, sans la partie heure, et nécessite 3 octets pour le stockage. Le format de date est « AAAA-MM-JJ », où AAAA représente l'année, MM représente le mois et JJ représente le jour.

Lors de l'attribution de valeurs aux champs de type DATE, vous pouvez utiliser des données de type chaîne ou de type numérique à insérer, à condition qu'elles soient conformes au format de date de DATE. Comme indiqué ci-dessous :

  • La date exprimée au format de caractères « AAAA-MM-JJ » ou « AAAAMMJJ », la plage de valeurs est « 1000-01-01 » ~ « 9999-12-3 ». Par exemple, saisissez « 2015-12-31 » ou « 20151231 » et la date insérée dans la base de données sera le 2015-12-31.

  • Représente la date au format de chaîne « AA-MM-JJ » ou « AAMMJJ », où AA représente la valeur de l'année à deux chiffres. MySQL interprète les règles pour les valeurs d'année à deux chiffres : les valeurs d'année comprises entre « 00 et 69 » sont converties en « 2000 ~ 2069 », et les valeurs d'année comprises entre « 70 et 99 » sont converties en "1970 ~ 1999". Par exemple, si vous saisissez « 15-12-31 », la date insérée dans la base de données est le 2015-12-31 ; si vous saisissez « 991231 », la date insérée dans la base de données est le 1999-12-31.

  • Date exprimée au format numérique AAMMJJ, similaire au précédent, les valeurs de l'année comprises entre 00 et 69 sont converties en 2000 à 2069 et les valeurs de l'année comprises entre 80 et 99 sont converties en 1980 ~ 1999. Par exemple, si vous saisissez 151231, la date insérée dans la base de données est le 31/12/2015, et si vous saisissez 991231, la date insérée dans la base de données est le 31/12/1999.

  • Utilisez CURRENT_DATE ou NOW() pour insérer la date actuelle du système.

Astuce : MySQL autorise une syntaxe "détendue" : n'importe quel signe de ponctuation peut être utilisé comme séparateur entre les parties de date. Par exemple, '98-11-31', '98.11.31', '98/11/31' et '98@11@31' sont équivalents et ces valeurs seront insérées correctement dans la base de données.

Type DATETIME

Le type DATETIME est utilisé pour les valeurs qui doivent contenir à la fois des informations de date et d'heure et nécessite 8 octets pour le stockage. Le format de date est « AAAA-MM-JJ HH:MM:SS », où AAAA représente l'année, MM représente le mois, DD représente le jour, HH représente l'heure, MM représente la minute et SS représente la seconde.

Lors de l'attribution de valeurs aux champs de type DATETIME, vous pouvez utiliser des données de type chaîne ou de type numérique à insérer, à condition qu'elles soient conformes au format de date de DATETIME, comme indiqué ci-dessous.

  • La date exprimée au format de chaîne 'AAAA-MM-JJ HH:MM:SS' ou 'AAAAMMJJHHMMSS', la plage de valeurs est '1000-01-01 00:00:00'~'9999-12 - 3 23:59:59'. Par exemple, si vous saisissez « 2014-12-31 05:05:05 » ou « 20141231050505 », la valeur DATETIME insérée dans la base de données sera 2014-12-31 05:05:05.

  • Une date représentée au format de chaîne « AA-MM-JJ HH:MM:SS » ou « AAMMJJHHMMSS », où AA représente la valeur de l'année à deux chiffres. Comme auparavant, la valeur de l'année dans la plage de « 00 à 79 » est convertie en « 2000 à 2079 », et la valeur de l'année dans la plage de « 80 à 99 » est convertie en « 1980 à 1999 ». Par exemple, si vous saisissez « 14-12-31 05:05:05 », le DATETIME inséré dans la base de données est 2014-12-31 05:05:05 ; si vous saisissez 141231050505, le DATETIME inséré dans la base de données est 2014 ; -12-31 05:05:05 .

  • Date et heure exprimées au format numérique AAAAMMJJHHMMSS ou AAMMJJHHMMSS. Par exemple, si vous entrez 20141231050505, le DATETIME inséré dans la base de données est 2014-12-31 05:05:05 ; si vous entrez 140505050505, le DATETIME inséré dans la base de données est 2014-12-31 05:05:05.

Astuce : MySQL autorise une syntaxe "détendue" : n'importe quel signe de ponctuation peut être utilisé comme séparateur entre les parties de date ou les parties d'heure. Par exemple, '98-12-31 11:30:45', '98.12.31 11+30+35', '98/12/31 11*30*45' et '98@12@31 11^30^ 45' sont équivalents et ces valeurs peuvent être insérées correctement dans la base de données.

Type TIMESTAMP

Le format d'affichage de TIMESTAMP est le même que DATETIME, la largeur d'affichage est fixée à 19 caractères, le format de date est AAAA-MM-JJ HH:MM:SS, ce qui nécessite 4 octets pour le stockage. Toutefois, la plage de valeurs de la colonne TIMESTAMP est plus petite que la plage de valeurs de DATETIME, qui est « 1970-01-01 00:00:01'UTC~'2038-01-19 03:14:07'UTC. Lors de l'insertion de données, assurez-vous qu'elles se situent dans la plage de valeurs légales.

Conseils : Le temps universel coordonné (anglais : temps universel coordonné, français : Temps Universel Coordonné) est également connu sous le nom de temps universel unifié, de temps standard universel et de temps international coordonné. Les abréviations anglaise (CUT) et française (TUC) sont différentes et, à titre de compromis, l'abréviation est UTC.

TIMESTAMP et DATETIME, en plus des différents octets de stockage et plages prises en charge, la plus grande différence est :

  • DATETIME Lors du stockage des données de date, elles sont stockées dans le format d'entrée réel, c'est-à-dire quelle que soit l'entrée qui est stockée. Cela n'a rien à voir avec le fuseau horaire ;

  • Le stockage de la valeur TIMESTAMP est enregistré au format UTC (Temps universel coordonné). Le fuseau horaire actuel est converti lors du stockage, puis reconverti dans le fuseau horaire actuel lors de la récupération. Autrement dit, lors de l'interrogation, la valeur temporelle affichée est différente en fonction du fuseau horaire actuel.

Conseil : Si vous attribuez une valeur DATE à un objet DATETIME ou TIMESTAMP, la partie heure de la valeur résultante est définie sur « 00:00:00 », donc la valeur DATE ne contient pas d'informations temporelles. Si un objet DATE se voit attribuer une valeur DATETIME ou TIMESTAMP, la partie heure de la valeur résultante est supprimée, de sorte que la valeur DATE ne contient aucune information temporelle.

4. Type de chaîne

Le type de chaîne est utilisé pour stocker des données de chaîne et peut également stocker des données binaires d'images et de sons. Les chaînes peuvent être comparées à des chaînes sensibles à la casse ou insensibles, et des recherches de correspondance d'expressions régulières peuvent également être effectuées.

Les types de chaînes dans MySQL incluent CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, etc.

Le tableau suivant répertorie les types de données de chaîne dans MySQL. Le M entre parenthèses indique que la longueur peut être spécifiée.

^16
Nom du type Description Exigences de stockage
CHAR(M) Chaîne non binaire de longueur fixe M octets, 1<=M<=255
V ARCHAR(M) Chaîne non binaire de longueur variable L+1 octets, où L
TEXTE Petite chaîne non binaire L+2 octets, où L<2
MEDIUMTEXT Medium Une chaîne non binaire de taille L+3 octets, où L<2^24
LONGTEXT Une chaîne non binaire de taille L+ 4 octets, où L<2^ 32
ENUM Type d'énumération, ne peut avoir qu'une seule valeur de chaîne d'énumération 1 ou 2 octets, selon le nombre de valeurs d'énumération (la valeur maximale est 65535)
SET Un objet ensemble, chaîne peut avoir zéro ou plusieurs membres SET 1, 2, 3, 4 ou 8 octets, selon le nombre de membres de l'ensemble (jusqu'à 64 membres)

Les types VARCHAR et TEXT sont des types de longueur variable et leurs exigences de stockage dépendent de la longueur réelle de la valeur de la colonne (notée L dans le tableau précédent), plutôt que de la taille maximale possible du type.

Par exemple, une colonne VARCHAR(10) peut stocker une chaîne d'une longueur maximale de 10 caractères. Le stockage réel nécessite la longueur L de la chaîne plus un octet pour enregistrer la longueur de la chaîne. Pour le caractère "abcd", L vaut 4 et le stockage nécessite 5 octets.

Les types CHAR et VARCHAR

CHAR(M) sont des chaînes de longueur fixe et la longueur de la colonne de chaîne est spécifiée lors de la définition. Une fois enregistré, remplit les espaces à droite jusqu'à la longueur spécifiée. M représente la longueur de la colonne, allant de 0 à 255 caractères.

Par exemple, CHAR(4) définit une colonne de chaîne de longueur fixe contenant un maximum de 4 caractères. Lorsqu'une valeur CHAR est récupérée, les espaces de fin sont supprimés.

VARCHAR(M) est une chaîne de longueur variable, M représente la longueur de la colonne maximale et la plage de M est de 0 à 65535. La longueur réelle maximale d'un VARCHAR est déterminée par la taille de la ligne la plus longue et le jeu de caractères utilisé, tandis que l'espace réel occupé est la longueur réelle de la chaîne plus un.

Par exemple, VARCHAR(50) définit une chaîne d'une longueur maximale de 50. Si la chaîne insérée ne contient que 10 caractères, la chaîne réellement stockée sera de 10 caractères et un caractère de fin de chaîne. Les espaces de fin VARCHAR sont conservés lorsque les valeurs sont enregistrées et récupérées.

Type TEXT

La colonne TEXT stocke les chaînes non binaires, telles que le contenu de l'article, les commentaires, etc. Les espaces de fin ne sont pas supprimés lors de l'enregistrement ou de l'interrogation des valeurs de colonne TEXT.

Les types TEXT sont divisés en 4 types : TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT. Différents types de TEXTE ont des espaces de stockage et des longueurs de données différents.

  • TINYTEXT représente une colonne TEXT d'une longueur de 255 (28-1) caractères.

  • TEXT représente une colonne TEXT d'une longueur de 65535 (216-1) caractères.

  • MEDIUMTEXT représente une colonne TEXT d'une longueur de 16777215 (224-1) caractères.

  • LONGTEXT représente une colonne TEXT d'une longueur de 4294967295 ou 4 Go (232-1) caractères. Le type

ENUM

ENUM est un objet chaîne dont la valeur est une valeur de colonne énumérée dans la spécification de colonne lors de la création de la table. Le format de syntaxe est le suivant :

<字段名> ENUM( &#39;值1&#39;, &#39;值1&#39;, …, &#39;值n&#39; )
Copier après la connexion

Le nom du champ fait référence au champ à définir, et la valeur n fait référence à la nième valeur de la liste d'énumération.

Les champs de type ENUM peuvent être obtenus à partir de la liste d'énumération spécifiée lors de la prise de valeurs, et une seule valeur peut être obtenue à la fois. S'il y a des espaces dans le membre créé, les espaces de fin seront automatiquement supprimés.

Les valeurs ENUM sont représentées en interne par des entiers, et chaque valeur d'énumération a une valeur d'index ; les valeurs de membre autorisées dans la valeur de liste sont numérotées à partir de 1, et MySQL stocke ce numéro d'index. 65535 éléments.

Type SET

SET est un objet chaîne qui peut avoir zéro ou plusieurs valeurs. La colonne SET peut avoir jusqu'à 64 membres, et la valeur est une valeur de colonne spécifiée lors de la création de la table. Lorsque vous spécifiez une valeur de colonne SET qui inclut plusieurs membres SET, séparez chaque membre par une virgule. Le format de syntaxe est le suivant :

SET( &#39;值1&#39;, &#39;值2&#39;, …, &#39;值n&#39; )
Copier après la connexion

est le même que le type ENUM. La valeur SET est représentée en interne par un entier. la liste a un numéro d'index. Les espaces de fin des valeurs des membres SET sont automatiquement supprimés lors de la création de la table.

Mais contrairement au type ENUM, le champ de type ENUM ne peut sélectionner qu'une seule valeur parmi les valeurs de colonne définies à insérer, tandis que la colonne de type SET peut sélectionner l'union de plusieurs caractères parmi les valeurs de colonne définies.

Conseils : S'il y a des valeurs de colonne en double insérées dans le champ SET, MySQL supprimera automatiquement les valeurs en double ; l'ordre des valeurs insérées dans le champ SET n'est pas important, MySQL les affichera dans l'ordre défini. ordre lorsqu'ils sont stockés dans la base de données ; si des valeurs incorrectes ont été insérées, MySQL ignorera ces valeurs et émettra un avertissement.

5. Type binaire

MySQL prend en charge deux types de données de caractères : les chaînes de texte et les chaînes binaires. Dans la section précédente « Type de chaîne MySQL », nous avons parlé des chaînes de texte, dans cette section nous expliquerons les chaînes binaires.

Les types de chaînes binaires sont parfois directement appelés « types binaires ».

Les chaînes binaires dans MySQL sont BIT, BINARY, VARBINARY, TINYBLOB, BLOB, MEDIUMBLOB et LONGBLOB.

Le tableau suivant répertorie les types de données binaires dans MySQL. Le M entre parenthèses indique que la longueur peut être spécifiée.

类型名称说明存储需求
BIT(M)位字段类型大约 (M+7)/8 字节
BINARY(M)固定长度二进制字符串M 字节
VARBINARY (M)可变长度二进制字符串M+1 字节
TINYBLOB (M)非常小的BLOBL+1 字节,在此,L<2^8
BLOB (M)小 BLOBL+2 字节,在此,L<2^16
MEDIUMBLOB (M)中等大小的BLOBL+3 字节,在此,L<2^24
LONGBLOB (M)非常大的BLOBL+4 字节,在此,L<2^32

BIT 类型

位字段类型。M 表示每个值的位数,范围为 1~64。如果 M 被省略,默认值为 1。如果为 BIT(M) 列分配的值的长度小于 M 位,在值的左边用 0 填充。例如,为 BIT(6) 列分配一个值 b'101',其效果与分配 b'000101' 相同。

BIT 数据类型用来保存位字段值,例如以二进制的形式保存数据 13,13 的二进制形式为 1101,在这里需要位数至少为 4 位的 BIT 类型,即可以定义列类型为 BIT(4)。大于二进制 1111 的数据是不能插入 BIT(4) 类型的字段中的。

提示:默认情况下,MySQL 不可以插入超出该列允许范围的值,因而插入数据时要确保插入的值在指定的范围内。

BINARY 和 VARBINARY 类型

BINARY 和 VARBINARY 类型类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字节字符串。使用的语法格式如下:

列名称 BINARY(M) 或者 VARBINARY(M)
Copier après la connexion

BINARY 类型的长度是固定的,指定长度后,不足最大长度的,将在它们右边填充 “\0” 补齐,以达到指定长度。例如,指定列数据类型为 BINARY(3),当插入 a 时,存储的内容实际为 “\a0\0”,当插入 ab 时,实际存储的内容为“ab\0”,无论存储的内容是否达到指定的长度,存储空间均为指定的值 M。

VARBINARY 类型的长度是可变的,指定好长度之后,长度可以在 0 到最大值之间。例如,指定列数据类型为 VARBINARY(20),如果插入的值长度只有 10,则实际存储空间为 10 加 1,实际占用的空间为字符串的实际长度加 1。

BLOB 类型

BLOB 是一个二进制的对象,用来存储可变数量的数据。BLOB 类型分为 4 种:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB

【相关推荐:mysql视频教程

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!