Dans MySQL, nous divisons les types de données selon 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
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 qu'un champ est de type 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 d'un champ de table, nous pouvons utiliser un petit entier non signé 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 même pour 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 de nombre négatif
3 En utilisation réelle. 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
Remarque :
1. Valeur, il peut y avoir des inexactitudes
2 Et le nombre décimal est appelé un nombre à virgule fixe. Dans MySQL, il 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
*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. Alors que le type VARCHAR le traite comme la valeur maximale et utilise uniquement la longueur réellement nécessaire pour stocker la chaîne
le type ne sera pas complété par des espaces, mais les valeurs plus longues que l'indicateur seront 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 blob Lorsque la longueur requise du champ dépasse 255, MySQL propose deux types : TEXT 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, des
fichiers son, etc.
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
Remarque :
1. Le type d'heure est rarement utilisé dans les systèmes Web. De nombreuses personnes aiment utiliser int pour stocker l'heure. L'horodatage Unix est inséré lors de l'insertion, 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.
2. Vous pouvez choisir les types ci-dessus en fonction de la situation réelle
3 Afin de faciliter la visualisation dans la gestion de la base de données, certaines personnes utilisent le type datetime pour stocker l'heure.
Type composite
Un type ENUM ne permet d'obtenir qu'une seule valeur à partir d'une collection tandis que ; Les types SET permettent d'obtenir n'importe quel nombre de valeurs à partir d'une collection.
Type ENUM
Le type ENUM ne permet d'obtenir qu'une seule valeur dans la collection, ce qui est similaire à une seule option. 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'insertion d'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 rechercher des enregistrements illégaux dans un champ de type SET, recherchez simplement les lignes contenant une chaîne vide ou une valeur binaire 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 :
CREATE TABLE IF NOT EXISTS demo ( id int(11) NOT NULL, username varchar(50) NOT NULL, password char(32) NOT NULL, content longtext NOT NULL, createtime datetime NOT NULL, sex tinyint(4) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Autres paramètres d'attribut du champ
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, ajoutez après l'instruction de champ entier ou à virgule flottante :
non signé
ZEROFILL (0 padding) 0 (pas d'espaces) peut être utilisé pour la valeur de sortie du complément vrai . Utilisez ce modificateur pour empêcher la base de données MySQL de stocker des valeurs négatives.
Ajouter après l'instruction de champ entier ou à virgule flottante lors de la création :
zerofill
default L'attribut par défaut garantit qu'une constante est attribuée si aucune valeur n'est disponible Valeur, 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 une 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 :
not null
null Lors de la spécification de l'attribut null pour une colonne, la colonne peut rester vide, et peu importe si les autres colonnes de la ligne sont remplies. 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.