Résumé : dans ce tutoriel, vous apprendrez à connaître le type de données INT
ou entier de MySQL et comment l’utiliser dans la conception de votre table de base de données. En outre, nous vous montrerons comment utiliser les attributs largeur d’affichage et ZEROFILL d’une colonne entière.
Introduction au type INT de MySQL
Dans MySQL, INT
représente l’entier qui est un nombre entier. Un nombre entier peut être écrit sans composante fractionnaire, par exemple, 1, 100, 4, -10, et il ne peut pas être 1,2, 5/3, etc. Un nombre entier peut être nul, positif et négatif.
MySQL prend en charge tous les types de nombres entiers standard SQL INTEGER
ou INT
et SMALLINT
. En outre, MySQL fournit TINYINT
MEDIUMINT
, et BIGINT
comme extensions du standard SQL.
Le type de données INT
de MySQL peut être signé et non signé. Le tableau suivant illustre les caractéristiques de chaque type d’entier, notamment le stockage en octets, la valeur minimale et la valeur maximale.
Type | Stockage | Valeur minimale | Valeur maximale |
---|---|---|---|
(Octets) | (Signé/Non signé) | (Signé/Non signé) | |
TINYINT | 1 | -128 | 127 |
0 | 255 | ||
SMALLINT | 2 | -32768 | 32767 |
0 | 65535 | ||
MEDIUMINT | 3 | -8388608 | 8388607 |
0 | 16777215 | ||
INT | 4 | -2147483648 | 2147483647 |
0 | 4294967295 | ||
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
0 | 18446744073709551615 |
Exemples du type de données INT de MySQL
Voyons quelques exemples d’utilisation du type de données entier.
A) Exemple d’utilisation de MySQL INT pour une colonne
Parce que le type integer représente des nombres exacts, vous l’utilisez généralement comme clé primaire d’une table. En outre, la colonne INT
peut avoir un attribut AUTO_INCREMENT
.
Lorsque vous insérez une valeur NULL
ou 0 dans la colonne INT AUTO_INCREMENT
, la valeur de la colonne est définie sur la valeur de séquence suivante. Remarquez que la valeur de séquence commence par 1.
Lorsque vous insérez une valeur, qui n’est pas NULL
ou zéro, dans la colonne AUTO_INCREMENT
, la colonne accepte la valeur. En outre, la séquence est réinitialisée à la valeur suivante de la valeur insérée.
D’abord, créez une nouvelle table nommée items
avec une colonne entière comme clé primaire:
Code language: SQL (Structured Query Language) (sql)
Vous pouvez utiliser soit INT
soit INTEGER
dans l’instruction CREATE TABLE
ci-dessus car ils sont interchangeables. Chaque fois que vous insérez une nouvelle ligne dans la table items
, la valeur de la colonne item_id
est augmentée de 1.
Puis, l’instruction INSERT
suivante insère trois lignes dans la table items
.
Code language: SQL (Structured Query Language) (sql)
Puis, interrogez les données de la table items
en utilisant l’instruction SELECT
suivante :
Code language: SQL (Structured Query Language) (sql)
Après cela, insérez une nouvelle ligne dont la valeur de la colonne item_id
est spécifiée explicitement.
Code language: SQL (Structured Query Language) (sql)
Puisque la valeur actuelle de la colonne item_id
est 10, la séquence est réinitialisée à 11. Si vous insérez une nouvelle ligne, la colonne AUTO_INCREMENT
utilisera 11 comme prochaine valeur.
Code language: SQL (Structured Query Language) (sql)
Enfin, interrogez à nouveau les données de la table items
pour voir le résultat.
Code language: SQL (Structured Query Language) (sql)
Notez qu’à partir de MySQL 5.1, la colonne AUTO_INCREMENT
n’accepte que les valeurs positives et ne permet pas les valeurs négatives.
B) Utilisation de l’exemple MySQL INT UNSIGNED
Premièrement, créez une table appelée classes
qui a la colonne total_member
avec le type de données entier non signé:
Code language: SQL (Structured Query Language) (sql)
Deuxièmement, insérez une nouvelle ligne dans la table classes
:
Code language: SQL (Structured Query Language) (sql)
Cela a fonctionné comme prévu.
Troisièmement, tentative d’insertion d’une valeur négative dans la colonne total_member
:
Code language: SQL (Structured Query Language) (sql)
MySQL a émis l’erreur suivante:
Code language: SQL (Structured Query Language) (sql)
MySQL INT avec l’attribut largeur d’affichage
MySQL fournit une extension qui vous permet de spécifier la largeur d’affichage avec le type de données INT
. La largeur d’affichage est enveloppée à l’intérieur des parenthèses suivant le mot-clé INT
, par exemple, INT(5)
spécifie un INT
avec la largeur d’affichage de cinq chiffres.
Il est important de noter que l’attribut de largeur d’affichage ne contrôle pas les plages de valeurs que la colonne peut stocker. L’attribut de largeur d’affichage est généralement utilisé par les applications pour formater les valeurs entières. MySQL inclut l’attribut de largeur d’affichage en tant que métadonnées du jeu de résultats retourné.
MySQL INT avec l’attribut ZEROFILL
En plus de l’attribut de largeur d’affichage, MySQL fournit un attribut non standard ZEROFILL
. Dans ce cas, MySQL remplace les espaces par des zéros. Considérez l’exemple suivant.
Premièrement, créez une table nommée zerofill_tests
:
Code language: SQL (Structured Query Language) (sql)
Deuxièmement, insérez une nouvelle ligne dans la table zerofill_tests
.
Code language: SQL (Structured Query Language) (sql)
Troisièmement, interrogez les données de la table zerofill_tests
.
Code language: SQL (Structured Query Language) (sql)
La colonnev1
a une largeur d’affichage 2 incluantZEROFILL.
Sa valeur est 1 donc, vous voyez01
dans la sortie. MySQL remplace le premier espace par 0.
La colonne v2 a un affichage de 3 incluant ZEROFILL
. Sa valeur est 6 donc, vous voyez 00
comme les zéros de tête.
La colonne v3 a l’affichage de largeur 5 avec ZEROFILL
, alors que sa valeur est 9, donc MySQL tamponne 0000
au début du nombre dans la sortie.
Notez que si vous utilisez l’attribut ZEROFILL
pour une colonne d’entiers, MySQL ajoutera automatiquement un attribut UNSIGNED
à la colonne.
Dans ce tutoriel, vous avez appris à utiliser le type de données MySQL INT
pour concevoir des tables de base de données.
- Ce tutoriel vous a-t-il été utile ?
- OuiNon