【⑬MySQL | Type de données (1)】Introduction | Entier | Virgule flottante | Virgule fixe | Type heure/date

avant-propos

✨Bienvenue dans la colonne MySQL de Xiao K , cette section vous apportera une introduction aux types de données MySQL | entier | virgule flottante | virgule fixe | partage de type heure/date✨


insérer la description de l'image ici

0. Introduction aux types de données

Le type de données (data_type) fait référence au type de données autorisé dans le système. Les types de données MySQL définissent les règles relatives aux données pouvant être stockées dans une colonne et à la manière dont ces données sont stockées.

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

Si vous utilisez le mauvais type de données, cela peut sérieusement affecter le fonctionnement et les performances de l'application. Par conséquent, lors de la conception du tableau, vous devez accorder une attention particulière au type de données utilisé par la colonne de données. Changer une colonne contenant des données n’est pas anodin et cela peut entraîner une perte de données. Par conséquent, vous devez définir le type et la longueur de données corrects pour chaque colonne lors de la création du tableau.

Les types de données de MySQL peuvent être grossièrement divisés en cinq types, à savoir le type entier , le type de nombre à virgule flottante et le type de nombre à 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

1.1 Présentation du type

Les types entiers incluent TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT

taper illustrer taille (octets)
PETIT INT très petit entier 1
PETIT INT petit entier 2
MOYENNE entier de taille moyenne 3
INT/ENTIER entier de taille normale 4
GRAND grand entier 8

1.2 Attributs facultatifs

1.2.1M

M : Indique la largeur d'affichage et la plage de valeurs de M est (0,255). Par exemple, INT(5) : lorsque les données font moins de 5 bits, les caractères peuvent être remplis pour remplir la largeur requise. Cette fonction doit être configurée et ZEROFILLutilisée, indiquant que la largeur est remplie avec 0, sinon la largeur d'affichage spécifiée n'est pas valide.

Remarque : Le réglage de la largeur n'aura aucun effet sur les données originales ou les données insérées, seul l'effet d'affichage est différent. Depuis MySQL 8.0.17, l'attribut display width est obsolète pour les types entiers.

1.2.2 NON SIGNÉ

Tous les types entiers ont un attribut facultatif UNSIGNED et la valeur minimale des types entiers non signés est 0. Par conséquent, si vous devez enregistrer des entiers non négatifs dans MySQL, vous pouvez définir le type entier sur un type non signé.

1.3 Scénarios d'utilisation

TINYINT : généralement utilisé pour les types d'énumération, tels que les scénarios dans lesquels la plage de valeurs du paramètre système est petite et fixe.

SMALLINT : Il peut être utilisé pour une gamme plus restreinte de données statistiques, telles que le comptage du nombre de stocks d'immobilisations dans les usines.

MEDIUMINT : Utilisé pour le calcul d'entiers plus grands, comme le flux quotidien de passagers de la gare.

INT, INTEGER : La plage de valeurs est suffisamment large. En général, il n'est pas nécessaire de considérer le problème du dépassement de la limite. Ce sont celles qui sont les plus utilisées, comme les numéros de produits.

BIGINT : Il n'est utilisé que lorsque vous traitez des nombres entiers particulièrement importants, tels que le volume des transactions de Double Eleven, le nombre de clics sur les grands portails, les positions des produits dérivés des sociétés de valeurs mobilières, etc.

1.4 Comment choisir

Lors de l'évaluation du type entier à utiliser, vous devez considérer 存储空间le 可靠性problème d'équilibre : d'une part, utiliser un type entier qui occupe moins d'octets peut économiser de l'espace de stockage ; d'autre part, si pour économiser de l'espace de stockage, le type entier utilisé est Si la plage de valeurs est trop petite, une fois qu'elle rencontre une situation au-delà de la plage de valeurs, cela peut causer 系统错误des dommages et affecter la fiabilité.

Par exemple, le type de données utilisé par le numéro de produit est INT. La raison en est qu'il existe de nombreux types de produits en circulation dans le magasin du client et que chaque jour, d'anciens produits sont retirés des étagères et de nouveaux produits sont mis en étagère, de manière itérative et cumulative.

Si le type SMALLINT est utilisé, bien que le nombre d'octets occupés soit inférieur à celui du certificat de type INT, il n'y a aucune garantie que les données ne dépasseront pas 655345. Au contraire, l'utilisation de INT peut garantir qu'il existe une plage de valeurs suffisamment large, et il n'y a pas lieu de s'inquiéter des données dépassant la plage et affectant la fiabilité.

Ce à quoi vous devez faire attention, c'est que dans le travail réel, 系统故障产生的成本远远超过增加几个字段存储空间所产生的成本. Par conséquent, je vous suggère de vous assurer d'abord que les données ne dépassent pas la plage de valeurs, puis de réfléchir à la manière d'économiser de l'espace de stockage sur cette base.

2 types à virgule flottante

2.1 Introduction aux types

Les types à virgule flottante incluent FLOAT, DOUBLE et REAL.

taper illustrer taille (octets)
FLOTTER virgule flottante simple précision 4
DOUBLE virgule flottante double précision 8
RÉEL La valeur par défaut est DOUBLE Définissez le mode SQL sur " REAL_AS_FLOAT", REAL est FLOAT
SET sql_mode = "REAL_AS_FLOAT"

2.2 Description de l'exactitude

  • MySQL autorise l'utilisation 非标准语法(d'autres bases de données peuvent ne pas le prendre en charge, donc si cela implique un transfert de données, il est préférable de ne pas l'utiliser) : FLOAT(M,D) ou DOUBLE(M,D). Parmi eux, Mon l'appelle précision, ce qui signifie le nombre total de chiffres ; Don l'appelle échelle, ce qui signifie le nombre de décimales. D<=M<=255, 0<=D<=30.

    Par exemple : Une colonne définie comme FLOAT(5,2) peut être affichée sous la forme [-999.99, 999.99], et une erreur sera signalée si elle dépasse cette plage.

  • Lorsque la précision de FLOAT et DOUBLE n'est pas spécifiée, la précision réelle sera utilisée par défaut (déterminée par le matériel informatique et le système d'exploitation).

  • Remarque : Des types à virgule flottante peuvent également être ajoutés UNSIGNED, mais la plage de données ne sera pas modifiée. Par exemple : FLOAT(3,2) UNSIGNED ne peut représenter que la plage de 0 à 9,99.

  • Que la précision (M,D) soit affichée ou non, MySQL possède son propre schéma de traitement :

    • Si la partie entière dépasse la plage lors du stockage, une erreur sera directement signalée.
    • Si le point décimal est hors de portée lors du stockage, décomposons la situation :
      • Si la partie entière ne dépasse pas la plage après arrondi, elle peut être stockée. Si vous insérez 999.009 dans la colonne FLOAT(5,2), le résultat approximatif est 999.01.
      • Si la partie entière dépasse la plage après arrondi, une erreur sera directement signalée. Si vous insérez 999.995 et -999.995 dans la colonne FLOAT(5,2), une erreur sera signalée.
  • À partir de MySQL8.0.17, l'utilisation de FLOAT(M,D) et DOUBLE(M,D) a été clairement dépréciée dans le document officiel et pourrait être supprimée à l'avenir ; de plus, UNSIGNED pour les types à virgule flottante FLOAT et DOUBLE n'est pas non plus recommandé et peut être supprimé à l'avenir.

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

Enfin, je voudrais souligner encore une fois : 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 monnaie et les données scientifiques), il est préférable d'utiliser le type DECIMAL, et les deux autres nombres à virgule flottante sont utilisés pour les opérations de soustraction et de comparaison.Il est également sujet à des problèmes, vous devez donc faire attention lorsque vous utilisez des nombres à virgule flottante et essayer d'éviter de faire des comparaisons à virgule flottante

3 types à virgule fixe

Le type de nombre à virgule fixe est DECIMAL.

taper illustrer taille (octets)
DÉCIMAL/DÉC Nombres à virgule fixe « stricts » compressés M+2

DÉCIMAL(M,D). Parmi eux, Mon l'appelle précision, ce qui signifie le nombre total de chiffres ; Don l'appelle échelle, ce qui signifie le nombre de décimales. 0<=M<=65, 0<=D<=30, D<M. Par exemple, si elle est définie comme DECIMAL(5,2), cela signifie que la plage de valeurs de cette colonne est [-999,99, 999,99].

  • La plage maximale de DECIMAL(M,D) est la même que celle du type DOUELE, mais l'orientation effective des données est déterminée par M et D. L'espace de stockage de DECIMAL n'est pas fixe, il est déterminé par la précision M, et l'espace de stockage total occupé est de M+2 octets. C'est-à-dire que dans certains scénarios qui ne nécessitent pas une grande précision, la plage numérique exprimée par des nombres à virgule flottante peut être plus grande que celle des nombres à virgule fixe occupant la même longueur d'octets.
  • Les nombres à virgule fixe sont stockés sous forme de chaînes dans MySQL, ce qui détermine qu'ils doivent être précis.
  • Lorsque le type DECIMAL ne spécifie pas la précision et l'échelle, la valeur par défaut est DECIMAL(10,0). Lorsque la précision des données dépasse la plage de précision du nombre à virgule fixe, MySQL effectuera également un arrondi.
  • Virgule flottante vs virgule fixe
    • Par rapport aux nombres à virgule fixe, l'avantage des nombres à virgule flottante est que lorsque la longueur est fixe, le type à virgule flottante a une large plage de valeurs, mais il n'est pas précis. Il convient aux scénarios de calcul scientifique qui nécessitent un large plage de valeurs et peut tolérer des erreurs.
    • La plage de valeurs du type nombre à virgule fixe est relativement petite, mais elle est précise et ne comporte aucune erreur. Elle est définie pour les scénarios qui nécessitent une précision extrêmement élevée (tels que les scénarios de conception de calculs de montant)

4 types de date/heure

Comprend l'ANNÉE, l'HEURE, la DATE, la DATETIME et l'HORODATAGE.

taper illustrer plage de dates taille (octets)
ANNÉE AAAA 1901~2155 1
TEMPS HH:MM:SS -838:59:59 ~ 838:59:59 3
DATE AAAA-MM-JJ 1000-01-01 ~ 9999-12-3 3
DATEHEURE AAAA-MM-JJ HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8
HORODATAGE AAAA-MM-JJ HH:MM:SS 01/01/1970 00:00:00 UTC ~ 19/01/2038 03:14:07 UTC 4

Type d'ANNÉE

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

  • YEAR est exprimé sous forme de chaîne à 4 chiffres ou de nombre à 4 chiffres, et la plage est « 1901 » ~ « 2155 ». Le format de saisie est « AAAA » ou AAAA. Par exemple, si vous saisissez « 2010 » ou 2010, la valeur insérée dans la base de données est 2010.
  • ANNÉE au format chaîne de 2 chiffres, comprise entre « 00 » et « 99 ». Les valeurs comprises dans la plage « 00 » ~ « 69 » et « 70 » ~ « 99 » sont converties en valeurs ANNÉE comprises entre 2000 ~ 2069 et 1970 ~ 1999, respectivement. « 0 » a le même effet que « 00 ». Les valeurs insérées en dehors de la plage de valeurs seront converties en 2000.

À partir de MySQL5.5.27, l'ANNÉE à 2 chiffres n'est pas recommandée. Le format par défaut de YEAR est "YYYY", il n'est pas nécessaire d'écrire YEAR(4).

CREATE TABLE test_year
(
	f1 YEAR,
    f2 YEAR(4)
);

INSERT INTO test_year(f1) VALUES('2021'),(2022);
INSERT INTO test_year(f1) VALUES('2155');
-- out of range value for column 'f1' at row 1
INSERT INTO test_year(f1) VALUES('2156');
INSERT INTO test_year(f1) VALUES('69'),('70');	#2069 1970
INSERT INTO test_year(f1) VALUES(0),('0');

Type de DATE

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

Lors de l'attribution d'une valeur à un champ de type DATE, vous pouvez insérer des données de type chaîne ou nombre, à condition qu'elles soient conformes au format de date de DATE. Comme suit:

  • 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, si vous saisissez « 2015-12-31 » ou « 20151231 », la date insérée dans la base de données sera le 2015-12-31.
  • Exprimez 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 la valeur de l'année à deux chiffres : la valeur de l'année comprise entre « 00 et 69 » est convertie en « 2000 ~ 2069 », et la valeur de l'année comprise entre « 70 et 99 » est convertie en « 2000 ~ 2069 ». 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.
  • Utilisez CURRENT_DATE() ou NOW() pour insérer la date système actuelle.

Astuce : MySQL autorise une syntaxe « laxiste » : n'importe quel signe de ponctuation peut être utilisé comme espaceur 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 également insérées correctement dans la base de données.

CREATE TABLE test_date1
(
	f1 DATE
);

INSERT INTO test_date1 VALUES('2022-04-16'),('20220416'),(20220416);
INSERT INTO test_date1 VALUES('22-04-16'),('220416'),
						     ('69-04-16'),('690416'),
						     ('70-04-16'),('700416'),
						     ('99-04-16'),('990416');
INSERT INTO test_date1 VALUES(220416),(690416),(700416),(990416);
INSERT INTO test_date1 VALUES(CURRENT_DATE()),(NOW());

Type d'heure

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 indique les heures, MM indique les minutes et SS indique 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 peut non seulement être utilisé pour représenter l'heure de la journée (il doit être inférieur à supérieur à 24 heures), mais aussi un événement Temps écoulé ou intervalle de temps entre deux événements (peut être supérieur à 24 heures, voire négatif).

La valeur TIME peut être spécifiée dans différents formats, comme suit.

  • Chaîne au format 'D HH:MM:SS'. Ces syntaxes « non strictes » peuvent également être utilisées : 'HH:MM:SS', 'HH:MM', 'D HH' ou 'SS'. Ici D représente le jour et 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 coupure ou une valeur au format HHMMSS, supposée être une heure significative. Par exemple, « 101112 » signifie « 10:11:12 », mais « 106112 » est illégal (il comporte une partie minutes absurde) et devient 00:00:00 une fois stocké.
  • Utilisez CURRENT_TIME() ou NOW() pour insérer l'heure système actuelle.

Astuce : Soyez prudent lorsque vous attribuez des valeurs abrégées aux colonnes TIME : sans les deux-points, MySQL interprète la valeur en supposant que les deux chiffres les plus à droite représentent les secondes . (MySQL interprète les valeurs TIME comme des heures passées plutôt que des heures actuelles). Par exemple, un lecteur peut 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 heures). secondes). De même, « 12 » et 12 sont interprétés comme 00:00:12. À l'inverse, les deux points dans une valeur TIME doivent être interprétés comme l'heure de la journée, c'est-à-dire que « 11:12 » signifie 11:12:00 et non 00:11:12.

CREATE TABLE test_time1
(
	f1 TIME
);
INSERT INTO test_time1 
VALUES('10:35:30'),('2 10:35:30'),('10:35'),('2 10:35'),('1 35'),('30');
INSERT INTO test_time1 VALUES('103530'),(103530),(1035);
INSERT INTO test_time1 VALUES(NOW()),(CURRENT_TIME());

Type DATE-HEURE

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 est l'année, MM est le mois, JJ est le jour, HH est l'heure, MM est la minute et SS est la seconde.

Lors de l'attribution d'une valeur à un champ de type DATETIME, vous pouvez insérer des données de type chaîne ou nombre, à 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'.
  • Une date 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, les valeurs de l'année comprises dans la plage « 00 ~ 79 » sont converties en « 2000 ~ 2079 » et les valeurs de l'année comprises dans la plage « 80 ~ 99 » sont converties en « 1980 ~ 1999 ».
  • Date et heure au format numérique AAAAMMJJHHMMSS ou AAMMJJHHMMSS.

Astuce : **MySQL autorise une syntaxe « laxiste » : n'importe quel caractère de ponctuation peut être utilisé comme espaceur 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 les valeurs sont insérées correctement dans la base de données.

CREATE TABLE test_datetime1
(
	dt DATETIME
);
INSERT INTO test_datetime1 VALUES('2022-04-16 18:50:30'),('20220416185030');
INSERT INTO test_datetime1 VALUES('99-04-16 18:50:30'),('990416185030'),
								 ('22-04-16 18:50:30'),('220416185030');
INSERT INTO test_datetime1 VALUES(20220202000000);
INSERT INTO test_datetime1 VALUES(CURRENT_TIMESTAMP()),(NOW());

Type d'horodatage

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

Astuce : 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 anglaises (CUT) et françaises (TUC) sont différentes, à titre de compromis, appelées UTC.

Outre les différents octets de stockage et plages prises en charge entre TIMESTAMP et DATETIME, il existe une autre différence majeure :

  • Lorsque DATETIME stocke des données de date, elles sont stockées selon le format d'entrée réel, c'est-à-dire qu'elles stockent tout ce qui est saisi, quel que soit le fuseau horaire ;
  • La valeur TIMESTAMP est stockée au format UTC (temps universel coordonné), le fuseau horaire actuel est converti lorsqu'il est stocké et reconverti dans le fuseau horaire actuel lorsqu'il est récupéré. 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 », de sorte que 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 pas d'informations temporelles.

CREATE TABLE test_timestamp
(
	ts TIMESTAMP
);
INSERT INTO test_timestamp VALUES('1999-01-01 01:02:03'),('1999-01-01 01:02:03'),
								 ('99-01-01 01:02:03'),('990101010203');
INSERT INTO test_timestamp VALUES('2022@01@02@11@22@33');
INSERT INTO test_timestamp VALUES(CURRENT_TIMESTAMP()),(NOW());

Différence entre TIMESTAMP et DATETIME

CREATE TABLE temp_time
(
	d1 DATETIME,
    d2 TIMESTAMP
);
INSERT INTO temp_time VALUES('2022-04-16 19:09:55','2022-04-16 19:09:55');
INSERT INTO temp_time VALUES(NOW(),NOW());

SELECT * FROM temp_time;

SET time_zone = '+9:00'

SELECT * FROM temp_time;	#设置之后再查询一次
  • définir le fuseau horaire
SET time_zone = '+9:00'

insérer la description de l'image ici

La magie de TIMESTAMP

Les horodatages TIMESTAMP peuvent avoir plusieurs caractéristiques différentes lors de leur création, telles que :

1. Actualisez cette colonne de données lors de la création de nouveaux enregistrements et de la modification d'enregistrements existants :

TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

2. Définissez ce champ sur l'heure actuelle lors de la création d'un nouvel enregistrement, mais ne l'actualisez pas lorsqu'il est modifié ultérieurement :

TIMESTAMP DEFAULT CURRENT_TIMESTAMP

3. Définissez ce champ sur 0 lors de la création d'un nouvel enregistrement, et actualisez-le lorsqu'il est modifié ultérieurement :

TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

4. Définissez ce champ sur une valeur donnée lors de la création d'un nouvel enregistrement et actualisez-le lorsqu'il est modifié ultérieurement :

TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss' ON UPDATE CURRENT_TIMESTAMP

Simuler la connexion d'un utilisateur

CREATE TABLE t_user
(
	id INT PRIMARY KEY AUTO_INCREMENT,
	createtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
	lastlogintime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
	is_online TINYINT DEFAULT 0
);
INSERT INTO t_user(is_online) VALUES(1);

SELECT * FROM t_user;

# 数据更新
UPDATE t_user SET is_online=0 WHERE id=1;

insérer la description de l'image ici

A l'origine, les deux heures sont exactement les mêmes, mais lorsque l'utilisateur se déconnecte, lastlohintimeune mise à jour automatique se produit

Résumer

En général, le choix d'un type de données approprié peut améliorer les performances de la base de données, économiser de l'espace de stockage, garantir la cohérence et la validité des données et faciliter le traitement et le calcul des données. Par conséquent, lors de la conception d’une base de données, il est très important de choisir le type de données approprié. ~La section suivante apporte le partage des types chaîne | binaires

Je suppose que tu aimes

Origine blog.csdn.net/qq_72157449/article/details/132395966
conseillé
Classement